Sql Server API学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql Server API学习相关的知识,希望对你有一定的参考价值。
Sql Server API学习
排名函数
NTILE
语法:
NTILE (integer_expression) OVER ( [ <partition_by_clause> ] < order_by_clause > )
return: bigint
PS:如果总行数不能够补integer_expression
整除,按照 OVER 子句指定的顺序,较大的组排在较小的组前面。例如:53分为5组,则前3组为11行,后2组为10行。
将数量为integer_expression
的行分为一组,每一组具有各自的编号,组编号从1开始。
A:将行分为组
- SELECT p.FirstName, p.LastName
- ,NTILE(4) OVER(ORDER BY s.SalesYTD DESC) AS Quartile
- ,CONVERT(nvarchar(20),s.SalesYTD,1) AS SalesYTD
- ,a.PostalCode
- FROM Sales.SalesPerson AS s
- INNER JOIN Person.Person AS p
- ON s.BusinessEntityID = p.BusinessEntityID
- INNER JOIN Person.Address AS a
- on a.AddressID = p.BusinessEntityID
- WHERE TerritoryID IS NOT null
B:使用PARTITION BY划分结果集
表达式
COALESCE
按顺序计算变量并返回最先不为NULL的第一个表达式的当前值
COALESCE(expression,.......)
PS:如果所有的值都为NULL,则至少返回一个NULL
COALESCE 表达式是 CASE 表达式的语法快捷方式。 即查询优化器将代码 COALESCE(expression1,...n) 重写为以下 CASE 表达式:
- END
简单示例代码:
- SELECT name, Class, Color, ProductNumber,
- COALESCE(Class,Color,ProductNumber) AS FirstNotNull
- FROM Production.Product
IIF
根据ture和false,计算不同的分支表达式
语法:
IIf(Logical_Expression, Expression1 [HINT ], Expression2 [HINT ])
IIf 函数有三个参数:iif(<条件>, <then 分支>, <else 分支>)
CHOOSE
在 SQL Server 中从值列表返回指定索引处的项。
语法:
CHOOSE ( index, val_1, val_2 [, val_n ] )
参数:
index
一个整数表达式,表示其后的项列表的从 1 开始的索引。如果提供的索引值具有 int 之外的数值数据类型,则该值将隐式转换为整数。 如果索引值超出了值数组的界限,则 CHOOSE 返回 Null。
val_1 … val_n
任何数据类型的逗号分隔的值列表。
示例:
- SELECT CHOOSE(2,‘test1‘,‘test2‘) AS result
以上是关于Sql Server API学习的主要内容,如果未能解决你的问题,请参考以下文章
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段