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小时内删除。
发表评论