qiancc的博客

只为成功找方法,不为失败找理由!

sql server中常用函数集锦(整理)

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、日期函数
 
 1.DateAdd ( I , N , D )
将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日

Day of yeary Dy y 一年的日数,一年中的第几日 1-366
w Weekday 一周的日数,一周中的第几日 1-7

Weekday Dw w 周,一年中的第几周 0 ~ 51//sql server 下不可用,不知道怎么回事
h Hour 时
n Minute 分
s Second 秒
N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。
D :待加减的日期。
例子: DateAdd ( "m" , 1 , "31-Jan-98")
结果: 28-Feb-98
说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。
例子: DateAdd ( "d" , 20 , "30-Jan-99")
结果: 1999/2/9
说明:将一个日期 30-Jan-99 加上 20 天后的日期。

 

2.Day( 日期的字符串或表达式 )、Month(日期的字符串或表达式)、Year(日期的字符串或表达式)
传回日期的「日」、「月」、「年」部份。
例子: Day(" 12/1/1999 ")
结果: 1

例子: Month(" 12/1/1999 ")
结果: 12

例子: Year(" 12/1/1999 ")
结果: 1999

 

3.DateDiff (I , D1 , D2[,FW[,FY]])
计算两个日期之间的期间。
I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日

Day of year Dy y 一年的日数,一年中的第几日 1-366
w Weekday 一周的日数,一周中的第几日 1-7

Weekday Dw w 周,一年中的第几周 0 ~ 51
h Hour 时
n Minute 分
s Second 秒
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。

 

4. datepart(I,D) 返回代表指定日期的指定部分的整数。I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日

Day of year Dy y 一年的日数,一年中的第几日 1-366
w Weekday 一周的日数,一周中的第几日 1-7

Weekday Dw w 周,一年中的第几周 0 ~ 51
h Hour 时
n Minute 分
s Second 秒

D:指定日期。例如:SELECT DATEPART(m, '2004-10-15') --返回 10

 

5.DateName(I,D):返回代表指定日期的指定部分的字符串(请注意与datepart的区别)。I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日

Day of year Dy y 一年的日数,一年中的第几日 1-366
w Weekday 一周的日数,一周中的第几日 1-7

Weekday Dw w 周,一年中的第几周 0 ~ 51
h Hour 时
n Minute 分
s Second 秒

 

D:指定日期。例如:select datename(w,getdate()) --返回 '星期一',再举一例,注意datepart和datename的区别:

select datepart(m,getdate())   --返回 '7'  (数值7)

 

select datename(month,getdate())   --返回 '07  (字符串07)
阅读更多
个人分类: sql server
上一篇Java中常见的几种对象(VO,PO,DTO,POJO,DAO,BO)
下一篇集合为NULL与集合长度为零的区别
想对作者说点什么? 我来说一句

sql server常用函数大全

2009年12月12日 678KB 下载

sqlserver常用函数大全.CHM

2008年01月04日 626KB 下载

SQL常用函数

2014年10月08日 972KB 下载

sqlServer常用函数

2011年04月03日 11KB 下载

SQL server常用函数集锦

2010年04月09日 133KB 下载

学习资料\SQL2005\SQL常用函数集锦

2010年05月27日 159KB 下载

没有更多推荐了,返回首页

关闭
关闭