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

翻译 2016年08月30日 15:19:49
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中常用全局变量和函数

SQL Server中常用全局变量和函数 5.1SQL Server中常用全局变量select APP_NAME ( ) as w --当前会话的应用程序 select @@ERROR --返回最后执...

SQL Server,MySQL,Oracle,PostgreSQL中常用函数用法(1)——日期操作

练习使用Hibernate没有用MySQL数据库,而是用了前不久接触的PostgreSQL,由于不同的数据对于相同的操作有各自的函数,MySQL的date_format(),在PostgreSQL中是...

SQL Server中常用全局变量介绍

在SQL Server中,全局变量是一种特殊类型的变量,服务器将维护这些变量的值。全局变量以@@前缀开头,不必进行声明,它们属于系统定义的函数。下表就是SQL Server中一些常用的全局变量。   ...

XML 在SQL server中常用方法

Examples:   --1 、表連接條件查詢   DECLARE    @names   XML     SET    @names   =    '    aa  ...

Microsoft® SQL Server™中常用数据类型之总结

精确数字 整数 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。 int 从...

oracle 中常用sql 函数

  • 2013年03月21日 11:52
  • 8KB
  • 下载

Oracle_Sql_中常用字符串处理函数

  • 2015年06月13日 11:04
  • 28KB
  • 下载

C#连接SQL SERVER问题集锦

最近在做一个自然语言处理方面的研究,需要用到SQL SERVER
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql server中常用函数集锦(整理)
举报原因:
原因补充:

(最多只允许输入30个字)