函数
发布时间:2020-12-12 15:42:35 所属栏目:MsSql教程 来源:网络整理
导读:一、函数:字符函数 1、datalength 作用:指定字符串的占用空间 declare @i char(5),@j varchar(5) set @i='abc' set @j='abc' select datalength(@i) select datalength(@j) 实例:求每个用户的姓名所用的空间 select datalength(姓名) from yuanGong 2、le
一、函数:字符函数1、datalength 作用:指定字符串的占用空间 declare @i char(5),@j varchar(5) set @i='abc' set @j='abc' select datalength(@i) select datalength(@j) 实例:求每个用户的姓名所用的空间 select datalength(姓名) from yuanGong 2、len 作用:求字符串的个数 求'I Love You!' select len('I Love You!') 3、left 作用:求左子串 语法:left(字符串,N) 从字符串的最左边开始取出N个字符 实例:从“中华人民共和国”取出中华 left('中华人民共和国',2) select left('中华人民共和国',2) 4、right 作用:求右子串 语法:right(字符串,N) 从右边开始取出N个字符 select right('中华人民共和国',3) 5、substring 作用:取子串 语法:substring(字符串,N1,N2) 从字符串的N1位开始取,取出N2的2个 select substring('中华人民共和国',3,2) 6、ascii 阿斯珂玛值 A -- 65 小键盘的数字 a -- 97 0(零) -- 48 按Alt键加小键盘上的数字 实例:求出每个人姓名的ascii值 create proc asha @username varchar(100) as declare @i int,@j int set @i=len(@username) set @j=1 while @j<=@i begin select substring(@username,@j,1) ascii(substring(@username,1)) set @j=@j+1 end exec asha 'Li Bo Tao' 7、char 求ascii值所对应的字符 select char(65) 8、replace 字符串替换 语法:replace(字符串1,字符串2,字符串3) 作用:从字符串1中查找字符串2,然后使用字符串3替换 select replace('I Love You','Love','Like') select 姓名,replace(姓名,'赵','李') from yuanGong where like '赵%' 9、stuff 插入函数 语法:stuff(字符串1,N2,字符串2) 从字符串1中N1位开始插入字符串2替换掉N2个字符 select stuff('ABCDEFCD',2,'XY') select replace('ABCDEFCD','CD','XY') select stuff('籍贯',1,'中国') from yuanGong 10、lower 将大写字母转换为小写字母 select lower('adfxyz') 11、upper 将小写字母转换为大写字母 12、str 将数值型转换为字符型 或 cast() select 'abc' + str(100) 语法:str(数值,总长度(默认为10),小数点右边位数) 13、rtrim 去空格函数(尾随) ltrim 去空格函数(前导) select '杜飞不错,是好人 ??'+'真的不错' select rtrim('杜飞不错,是好人'+'space(3)'+'真的不错') 14、space(n) 空格函数二、数值函数1、abs 求绝对值 2、pi 求圆周率 select pi() 3、power 求指数幂 power(2,3) -- 2 3 power(10,3) -- 10 3 4、sqrt 求平方根 select sqrt(9) 5、rand 求随机数 select rand() 说明:一般显示0到10之间的数 6、round 求四舍五入 select round(123.456,2) select round(123.456,0) select round(123.456,-1) 说明:负数表示在小数之前三、日期型函数Day() -- 日 Month() -- 月 Year -- 年 getdate -- 当前日期 select day(getdate()) 1、dateadd 100天之后的日期 select dateadd(day,100,getdate()) 2、datediff select datediff(day,getdate(),'2008-08-08') --距奥运还有多少天 3、cast(表达式 as 新类型) --类型转换 4、convert(新类型,表达式) --类型转换四、用户自定义函数create function 函数名(形参) returns 返回值类型 as begin SQL 语句 return 返回表达式 end 实例:求两个数的乘积 create function cj() returns int as begin return 100*200 end 调用自定义函数: select dbo.函数名() select dbo.cj() 实例: create function cj2(@i int,@j int) returns int as begin declare @s int set @s=@i*@j return @s end select dbo.cj2(100,234) 实例:求指定半径圆面积 s=pi()*R*R create function yuan(@R float) returns float as begin declare @s float set @s=pi()*power(@R,2) return @s end select dbo.yuan(2) 实例:编写一个函数,求指定半径的圆面积及周长五、标量函数:返回值只有一个1、内嵌表函数:返回值是一个表的形式 语法:create function 函数名(形参) returns table as return select 语句 调用: select * from dbo.函数名() 实例: create function yuannan() returns table as return select * from yuangong where 性别='男' select * from dbo.yuannan() 实例:编写函数,求圆面积、周长 标量函数:只能有一个返回值 create function yuan1(@r float) returns varchar(100) as begin declare @s float,@z float,@x varchar(100) set @s=pi()*power(@r,2) set @z=2*@r*pi() set @x='面积:'+cast(@s as varchar(100))+'周长:'+cast(@z as char(10)) return @x end select dbo.yuan1(2) 2、删除函数 语法:drop function 函数名 例:drop function fun04(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |