T-SQL操作语句之数据查询(二):查询中使用函数

T-SQL操作语句之数据查询(二):查询中使用函数  


2010-06-01 23:55:15|  分类: SQL语句 |举报|字号 订阅

T-SQL操作语句之数据查询(二):查询中使用函数


        SQL Server提供了一些内部函数,这些函数可以和select 语句联合使用,也可以与update和insert 一起使用。这些函数分4类,分别是字符串函数、日期函数、数学函数、系统函数。


      (一)部分常用的字符串函数


          1. CharIndex :用来寻找一个指定的字符串在另一个字符串中的起始位置。例:select  charindex('a','basada',3) 结果:4,该语句意为:在字符串'basada'中,从第3位开始找与字符段'a'相同的字符段,找到则返回第一次出现该字符段的位置,否则返回0。


         2. Len:返回传递给它的字符串长度。例:select len('abc de') 结果:6。一个空格是一个字符。


         3.Upper:把传递给它的字符串转换为大写。例:select upper(‘sdAdad’) 结果:'SDADAD'。


         4.Ltrim(Rtrim):清除字符左边(右边)的空格。例:select Ltrim('     ad') 结果:'ad'。


         5.right(left):从字符串右边(左边)返回指定数目的字符。例:select right('才下眉头,却上心头',2) 结果:'心头'。


         6.replace:替换一个字符串中的字符。例:select replace('abcdabcd','a','z') 结果:'zbcdzbcd'。该语句意为:用字符段'z'替换掉字符串'abcdabcd'中所有的字符'a'。


        7.stuff:在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串。例:select stuff('ABCDEFG',2,3,'我的世界') 结果:'A我的世界EFG'。该语句意为:在字符串'ABCDEFG'中,从第2位开始删除长度为3的字符,并在该位置插入字符串'我的世界'。


   (二)部分常用的日期函数


        1.getdate:取得当前的系统时间。例:select getdate() 结果:当前系统的时间。


        2.dateadd:将指定的数值添加到指定的日期部分后的日期。例:select dateadd(mm,4,'1999-01-01')  结果:1999-05-01 00:00:00.000。mm表示月份.。


       3.datediff:求两个日期之间,指定日期部分的差值。例:select datediff(dd,'2009-05-01','2009-06-01') 结果:31。dd表天。该语句意为:求得后面的时间与前面的时间的天数差。


      4.datename:日期中指定日期部分的字符串形式。例:select datename(dw,'2000-01-01') 结果:'星期六'。dw在sql中表星期。


      5.datepart:取得指定日期部分的整数形式。例:select datepart(day,'2009-11-28') 结果:28。


  (三)部分常用的数学函数


      1.Abs:取数值表达式的绝对值。例:select abs(-45) 结果:45。


      2.Ceiling:取大于或等于指定数值、表达式的最小整数。例:select ceiling(43.5) 结果:44。取大于或等于43.5的整数中的最小数:44。


      3.floor:取小于或等于指定表达式的最大整数。例:select floor(43.5) 结果:43。取小于或等于43.5的整数中的最大数:43。


      4.power:取数值表达式的幂值。例:select power(5,3) 结果:125。求得5的3次幂。


      5.round:将数值表达式四舍五入为指定精度。例:select round(43.541,1) 结果:43.5。求得一位小数值的数字,后面的数字1,表示取一位小数


     6.sign:对于正数返回+1、负数-1,0则返回0。例:select sign(-43) 结果:-1。


     7.sqrt:取浮点表达式的平方根。例:select sqrt(9) 结果:3。


  (四)部分常用的系统函数


    1.convert:用来转变数据类型。select convert(varchar(5),12345) 结果:'12345'。把数字123456转换为字符串'12345',convert()中的前一个是设置转换的类型,后面一个是要被转换的值。varchar(5)并设置字符串长度为5。


    2.current_user:返回当前用户的名字。select current_user 。


   3.datalength:返回用于指定表达式的字节数。select datalength('中国B联盟') 结果:9。


   4.host_name:返回当前用户所登录的计算机名称。select host_name() 。


   5.system_user:返回当前所登录的用户名称。select system_user。


  6.user_name:从给定的用户ID返回用户名。select user_name(1) 结果:dbo。


 


例:特殊排序 排序前:13-1、13-3、13-100、13-18、13-11、13-15、14-1、14-5、14-2;排序后:13-1、13-3、13-11、13-15、13-18、13-100、14-1、14-2、14-5。该字段名:listNumber,该数据库表名:Record。


T-SQL语句:select listNumber from Record order by convert(int,left(listNumber,charindex('-',listNumber)-1)),convert(int,stuff(listNumber,1,charindex('-',listNumber),'')) 。

你可能感兴趣的:(SQL,Server)