sql server2008常用函数大全

发布时间:2020-12-14编辑:脚本学堂
有关sql server2008中常用函数汇总,包括字符串函数、日期函数、数学函数等,需要的朋友参考下。

 
SQL Server 2005 对数据类型使用以下优先级顺序(先高后低):
不带世纪数位 (yy)
带世纪数位 (yyyy)
标准
输入/输出-
0 或 100
默认设置mon dd yyyy hh:miAM(或 PM)1 101
美国
mm/dd/yyyy 2 102 ANSI yy.mm.dd 3103
英国/法国
dd/mm/yy 4 104
德国
dd.mm.yy 5 105
意大利
dd-mm-yy 120
ODBC 规范
yyyy-mm-ddhh:mi:ss(24h)
 
1、用户定义数据类型(最高) 2、sql_variant  3、xml  4、datetime  5、smalldatetime  6、float  7、real  8、decimal  9、money  10、smallmoney 11、bigint  12、int  13、smallint 14、tinyint  15、bit  16、ntext  17、text  18、image  19、timestamp  20、uniqueidentifier
21、nvarchar(包括 nvarchar(max)) 22、nchar  23、varchar (包括 varchar(max)) 24、char  25、varbinary(包括 varbinary(max)) 26、binary(最低)
系统函数
函数名称 参数 示例 描述
newid无参数
select newid()
返回 2E6861EF-F4DB-4FFE-85EA-638242F2E5F2
select newid()
返回 09BBDE6F-47C2-4E2E-81E8-AFC50592280C
返回一个GUID(全局唯一表示符)值
isnumeric(任意表达式)
select isnumeric(1111)返回1
select isnumeric('123rr')返回0
select isnumeric('123')返回 1
判断表达式是否为数值类型或者是否可以转换成数值。是返回1,不是返回 0
isnull(任意表达式 1,任意表达式 2)
select isnull(null,N'没有值')返回 没有值
select isnull(N'具体的值',N'没有值')
返回 具体的值
如果任意表达式
1 不为 NULL,则返回它的值;否则,在将任意表达式
2 的类型转换为任意表达式 1 的类型(如果这两个类型不同)后,返回任意表式
2 的值。
isdate(任意表达式)
select isdate(getdate()) 返回1
select isdate('1988-1-1')返回1
select isdate('198')返回0
确定输入表达式是否为有效日期或可转成有效的日期。是返回1,不是返回 0

排名函数
排名函数的常用使用格式:函数名() over (order by 列名 [asc|desc][,列名……])
注意:返回结果集会根据使用排名函数时指定的列进行排序,因此不要在 from 子句后面再次使用 order by,会导致排名混乱。
函数名称
参数 示例 描述
row_number无参数
select roductID,[Name],ListPrice, row_number()
over(order by ListPrice desc) as rank from Production.Product
为结果集内每一行进行编号,从1开始后面行依次加 1。
rank无参数
select ProductID,[Name],ListPrice,rank()
over(order by ListPrice desc) as rank
from Production.Product
如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名不连续。例如,如果有价格最高的两种产品的价格相同,它们将列第一。由于已有两行排名在前,所以具有下一个最高价格的产品将排名第三。该排名等于该行之前的所有行数加一。因此,
RANK 函数并不总返回连续整数。
dense_rank
无参数
select
ProductID,[Name],ListPrice,dense_rank()
over(order by ListPrice desc) as rank
from Production.Product
如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名连续。
例如,如果有价格最高的两种产品的价格相同,它们将并列第一,下一个最高价
格的产品将排名第二。因此,
DENSE_RANK 函数返回的数字没有间断,并且始
终具有连续的排名。

聚合函数
聚合函数对一组值执行计算
,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。聚合函数的常用使用格式:函数名([all|distinct] 表达式)
all:默认值,对所有的值进行聚合函数运算包含重复值。distinct: 消除重复值后进行聚合函数运算。
函数名称 示例 描述
avg
SELECT avg(VacationHours)as '平均休假小时数'
FROM HumanResources.Employee
WHERE Title LIKE 'Vice President%'
返回 25
返回组中各值的平均值。空值将被忽略。 表达式为数值表达式。
count
SELECT count(*)FROM Production.Product 返回504
SELECT count(Color)FROM Production.Product 返回 256
SELECT count(distinct Color)FROM Production.Product
返回 9
返回组中的项数。COUNT(*) 返回组中的项数。包括 NULL 值和重复项。如果指定
表达式则忽略空值。表达式为任意表达式。
min
select min(ListPrice)from Production.Product返回0
返回组中的最小值。空值将被忽略。表达式为数值表达式,字符串表达式,日期。
max
select max(ListPrice) from Production.Product
返回3578.27
返回组中的最大值。空值将被忽略。表达式为数值表达式,字符串表达式,日期。
sum
SELECT sum(SickLeaveHours) as '总病假小时数'
FROM HumanResources.Employee
WHERE Title LIKE 'Vice President%'; 返回97
返回组中所有值的和。空值将被忽略。表达式为数值表达式