sql字符函数练习题
—1.设数据库中有学生成绩表sc, eno char, grade tinyint),设计一个函数Count cour,返回指定学生的选 修的课程门数.注意:没有选修时应返回0 ; create function Count_cour ) returns int as begin
return from sc where sno-@sno) end
—2,写一个T-sql函数reversion,完成颠倒一个字 符串,即:lect dbo. reversion输出的结果为deba; create function reversion ) returns varchar as begin declare @ret varchardeclare @i int t @ret-''
t @i-lenwhile @i>0 begin
japane party
t @ret-@ret+substringt @i-@i -lend
return @ret end
—lect dbo. reversion
一对照:下面的算法有错误,当字符串长度超过2000 后不能得到正确结果 create alter function reversion) returns varchar as begin
declare @i int, @j intt @i-lent @j-lenwhile @i>0 begin
t @str-@str+substringt @i-@i -lend
t @str-right
return @str
end
—lect dbo. reversion2
—3,写一个函数T-sql函数elimination将出现在第 一个字符串中的第二个字符串中的所有字符删除,即: lect dbo. elimination 输出为:天动acefgl345;
create function elimination , @b varchar) returns varchar
as begin
一declare @ret varchardeclare @i int—t @ret-''
t @i-l
while @i @a-replace, ' ' )t @i- @i + 1
end
return @a end
—lect dbo. elimination —4, 写 一■个 函数 Output_RMB,完成将人民币数值转换为汉字大写,即:lect dbo. Output_RMB输出为:肆仟伍佰陆拾桀元壹角贰分;
/*方法二:推荐使用的方法,支撑两种转换类型
lect dbo. Convert^money lect 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 — 大写金额
joinDeclare @i_I intlect @v_LowerStr-
LTRIM))一四舍五入为指定的精度并删除数据左右 lect @v_UpperStr - @v_UpperPart + @v_UpperStr
lect @i_I - | @i_I + 7, | lend |
| 一print | 2011年诺贝尔物理学奖/vJJpperStr- | '+@v_UpperStr |
+ ' //' | if 空格 lect @i_I - 1 玛丽外宿中电视剧lect @vJJpperStr - '' while )begin lect @vJJpperPart-ca substring @i_I + 1, 1) WHEN | | THEN | '元’ |
WHEN | 'O' THEN | 非常好的英文 ,零, | WHEN | | THEN | '壹’ |
WHEN | camilla'2,THEN | ,贰, | WHEN | 3 | THEN | ,参' |
WHEN | ,4' THEN | ,肆, | catti二级WHEN | ,5, | THEN | '伍’ |
WHEN | ,6' THEN | '陆’ | WHEN | aids是什么病的简称7 | THEN | '桀’ |
免费在线英语学习WHEN | W' THEN | '捌' | WHEN | ‘9, | THEN | '玖' |
| | | | | | |
END