sql字符函数练习题
—1.设数据库中有学生成绩表sc, eno char, grade tinyint),设计一个函数Count course,返回指定学生的选 修的课程门数.注意:没有选修时应返回0 ; create function Count_course ) returns int as begin
return from sc where sno-@sno) end
—2,写一个T-sql函数reversion,完成颠倒一个字 符串,即:select dbo. reversion输出的结果为deba; create function reversion ) returns varchar as begin declare @ret varchardeclare @i int set @ret-''
set @i-lenwhile @i>0 begin
set @ret-@ret+substringset @i-@i -lend
return @ret end
—select dbo. reversion
一对照:下面的算法有错误,当字符串长度超过2000 后不能得到正确结果 create alter function reversion) returns varchar as begin
declare @i int, @j intset @i-lenset @j-lenwhile @i>0 begin
set @str-@str+substringset @i-@i -lend
set @str-right
return @str
end
—select dbo. reversion2
—3,写一个函数T-sql函数elimination将出现在第 一个字符串中的第二个字符串中的所有字符删除,即: select dbo. elimination 输出为:acefgl345;
create function elimination , @b varchar) returns varchar
as begin
declare @ret varchardeclare @i int—set @ret-''
set @i-l
while @i @a-replace, ' ' )set @i- @i + 1
end
return @a end
—select dbo. elimination —4, 写 一■个 函数 Output_RMB,完成将人民币数值转换为汉字大写,即:select dbo. Output_RMB输出为:肆仟伍佰陆拾桀元壹角贰分;
/*方法二:推荐使用的方法,支撑两种转换类型
select dbo. Convert^money select dbo. Convert money */
Create function Convert money , @v TransType int )returns varchar AS begin
Declare @v_LowerStr VARCHAR 一 小写金额
Declare @v_UpperPart VARCHAR
Declare @v_UpperStr VARCHAR — 大写金额
Declare @i_I intselect @v_LowerStr-
LTRIM))一四舍五入为指定的精度并删除数据左右 select @v_UpperStr - @v_UpperPart + @v_UpperStr
select @i_I -
@i_I +
7,
lend
print
/vJJpperStr-
'+@v_UpperStr
+ ' //'
if 空格
select @i_I - 1
select @vJJpperStr - '' while )begin
select @vJJpperPart-case
substring @i_I + 1, 1) WHEN
THEN
'元’
WHEN
'O' THEN
,零,
WHEN
THEN
'壹’
WHEN
'2,THEN
,贰,
WHEN能够删除字符串中空格的函数是
3
THEN
,参'
WHEN
,4' THEN
,肆,
WHEN
,5,
THEN
'伍’
WHEN
,6' THEN
'陆’
WHEN
7
THEN
'桀’
WHEN
W' THEN
'捌'
WHEN
‘9,
THEN
'玖'
END

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。