SQL SERVER 中常用函数的总结,方便开发的时候查询

SQL SERVER 中常用函数

  刚开始对于sql中的函数掌握不足,所以在项目编码时,即使简单的时间比较也要上网查询,所以立志要把sql 函数这一块吃透,这也是我为什么写这篇随笔的原因,本人刚刚涉入软件开发这一行,有什么不足,不对,不完善的地方,还望各位前辈多多指教,小女子不胜感激。

 

1、聚合函数

  这个对于有sql 基础的人来说,实在再熟悉不过了,在这简单说明一下,sum,avg,max,min,count,聚合函数不统计值为null的行,我们可以通过distinct过滤掉重复的记录,也可以通过group by 分组。Count 函数不数带有 Null 字段的记录,除非使用星号,Count 将计算所有记录的总量,包括有 Null 的字段的记录。Count(*) Count ([Column Name]) 快得多。不要将星号放在引号 (' ') 中。如果我们要对某个字段进行计数,在至少有一个字段的值不为 Null 的情况下, Count 函数只计算一个记录。如果全部的指定字段为 Null没有记录会被计算。使用 (&) 分隔字段名,可以写成count('字段名[&字段名[&字段名...]')。

2、数学函数

  ceiling(n):返回不小于n的最小整数

  floor(n):返回不大于n的最大整数

  round(m,n):四舍五入,n为小数的位数

  rand:随机生成[0,1]之间的float类型值

  sign(expr):当expr为整数、0、负数时分别返回1、0、-1

  sqrt(expr):返回expr的平方根

  abs(expr):返回expr的绝对值

  power(expr,n):返回expr的n次方的值

3、字符串函数

  字符串函数在处理字符串和类型转换中都起着非常重要的作用。

  1) 字符串转换函数

  a、ASCII(expr):返回expr的最左端的字符的ascii码值,如果expr是纯数字,如1234,则可以写成ascii(1234),但如果不是纯数字,如a1234,则必须加引号,如ascii('a1234');

  b、CHAR(expr):将ascii码转换成字符,如果不存在ascii码为expr的字符,则返回null;

  c、LOWER(expr):将expr全部转换为小写

  d、UPPER(expr):将expr全部转换为大写

  e、STR(expr,[length,[decimal]]):把数值型数据转换为字符型数据。length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。当length 或者decimal 为负值时,返回NULL; 当length 小于小数点左边(包括符号位)的位数时,返回length 个*; 先服从length ,再取decimal ; 当返回的字符串位数小于length ,左边补足空格。

4、去空格函数

  1)LTRIM():去左空格

  2)RTRIM():去有空格

5、取子串函数

  1)LEFT(expr,length):取字符串expr左边length个字符

  2)RIGHT(expr,length):取字符串expr右边length个字符

  3)SUBSTRING(expr,start,length):取字符串从第start个字符开始的length个字符

  4)CHARINDEX ( expression1 , expression2 [ , start_location ] ) :用来在一段字符中搜索字符或者字符串,返回字符串中指定表达式的起始位置。其中expression1指定要查找的字符串,expression2是被搜索的字符串,start_location是从expression2的第几个字符开始搜索。例如,我们想查找莱昂纳多 迪卡普里奥Leonardo DiCaprio的姓,那么我们可以这样来写 select substring('Leonardo DiCaprio',charindex(' ','Leonardo DiCaprio') + 1,length('Leonardo DiCaprio')).

  5)PATINDEX ( '%pattern%' , expression ):返回expression中'%pattern%'所在的位置,patten前后必须有%。如:

    select patindex('%[d]%','rcrdsddddaadadffdr')

    返回4,[]中d在字符串rcrdsddddaadadffdr的第一次出现的位置。

    select patindex('%[cd]%','rcrdsdddrdaadadffdr')

    返回2,[]中c,d在其中一个的位置,返回最先出现的这个位置,c在此字符串里第一次出现位置是2,而d是4,结果取最先的那个。

    select patindex('%[sd]%','rcrdsdddrdaadadffdr')

    返回4,[]中c,d在其中一个的位置,返回最先出现的这个位置,s在此字符串里第一次出现位置是5,而d是4,结果取最先的那个。

    select patindex('%[^r]%','rrrdsdddrdaadadffdr')

    返回4,除[]中的字符串的匹配字符,第一次出现d不在[^r]里,所以就找到第一次这位。

    select patindex('%[^rd]%','rrrdsdddrdaadadffdr')

    返回5,除[]中的字符串的匹配字符,第一次出现s不在[^rd]里,所以就找到第一次这位。

    select patindex('%[^rsd]%','rrrdsdddrdaadadffdr')

    返回11,除[]中的字符串的匹配字符,第一次出现a不在[^rsd]里,所以就找到第一次这位。

 6、日期函数

  日期函数的使用我会在下一篇中介绍。

 

 

posted on 2012-07-23 12:50  doukou1234  阅读(1719)  评论(0编辑  收藏  举报

导航