Sql Server API学习

Sql Server API学习

SqlServer

  • 排名函数

    • NTILE
  • 表达式
    • COALESCE
    • IIF
    • CHOOSE

排名函数

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:将行分为组

  1. 1SELECT p.FirstName, p.LastName


  2. 2 ,NTILE(4) OVER(ORDER BY s.SalesYTD DESC) AS Quartile 

  3. 3 ,CONVERT(nvarchar(20),s.SalesYTD,1) AS SalesYTD 

  4. 4 ,a.PostalCode 

  5. 5FROM Sales.SalesPerson AS s  

  6. 6INNER JOIN Person.Person AS p  

  7. 7 ON s.BusinessEntityID = p.BusinessEntityID 

  8. 8INNER JOIN Person.Address AS a 

  9. 9 on a.AddressID = p.BusinessEntityID 

  10. 10WHERE TerritoryID IS NOT null 

B:使用PARTITION BY划分结果集

  1. 1


表达式

COALESCE

按顺序计算变量并返回最先不为NULL的第一个表达式的当前值

COALESCE(expression,.......)

PS:如果所有的值都为NULL,则至少返回一个NULL
COALESCE 表达式是 CASE 表达式的语法快捷方式。 即查询优化器将代码 COALESCE(expression1,...n) 重写为以下 CASE 表达式:

  1. 1CASE


  2. 2 WHEN (expression1 IS NOT NULL) THEN expression1 

  3. 3 WHEN (expression2 IS NOT NULL) THEN expression2 

  4. 4 ... 

  5. 5 ELSE expressionN 

  6. 6END 

简单示例代码:

  1. 1SELECT name, Class, Color, ProductNumber,


  2. 2 COALESCE(Class,Color,ProductNumber) AS FirstNotNull 

  3. 3FROM Production.Product 

IIF

根据ture和false,计算不同的分支表达式
语法:

IIf(Logical_Expression, Expression1 [HINT ], Expression2 [HINT ])
IIf 函数有三个参数:iif(<条件>, <then 分支>, <else 分支>)

  1. 1


CHOOSE

在 SQL Server 中从值列表返回指定索引处的项。
语法:

CHOOSE ( index, val_1, val_2 [, val_n ] )
参数
index
一个整数表达式,表示其后的项列表的从 1 开始的索引。如果提供的索引值具有 int 之外的数值数据类型,则该值将隐式转换为整数。 如果索引值超出了值数组的界限,则 CHOOSE 返回 Null。
val_1 … val_n
任何数据类型的逗号分隔的值列表。

示例:

  1. 1SELECT CHOOSE(2,‘test1‘,‘test2‘) AS result



时间: 2024-10-23 23:30:04

Sql Server API学习的相关文章

SQL Server数据库学习总结

经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜"十"言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数据库有了一些认识.  数据库基本是由表,关系,操作组成:对于初学者首先要学的:  1.数据库是如何存储数据的  表,约束,触发器  2.数据库是如何操作数据的  insert,update,delete T-sql 函数 存储过程 触发器  3.数据库是如何显示数据的  select SQLSer

关于SQL SERVER数据库学习总结

对于SQL SERFVER数据库也学了有一阵子了,自己也对自己所学做了一些总结. 我们首先学习数据库设计的一些知识点和用SQL语句建库. 设计数据库步骤:需求分析阶段,概要设计阶段,详细设计阶段, 建数据库的SQL语句如下(包含了如果有该数据库先删除在建立数据库) use masterGOif exists(select * from sysdatabases where name='Wages')DROP database WagesCREATE DATABASE Wages ON (  NA

SQL SERVER 内存学习系列(一)

最近帮客户解决发布订阅的问题时,突然遇到这样一个问题发布订阅中报下面的错误,另外执行alter table 操作时也会报错 : 问题很奇怪发布订阅和CLR有什么关系?memtoleave内存是个啥?回忆学习体系架构的时候,确实看到过memtoleave内存,但是是什么已经完全想不起来了,所以拿起书本回味一下学习的快感... ---------------转载请注明出处------------http://www.cnblogs.com/double-K/p/5049417.html-------

Sql Server 2008学习之第一天

因为爱好,决定自己今天开始自学SqlServer教程,为此记录每天学习情况,以此鞭策自己.好了,废话不多说了,下面为今天学习到的内容: SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用.SQL Server中使用语言为SQL语言(语句)又称结构化查询语言. 以下为最基

SQL Server再学习(1)——varchar、nvarchar、char的区别

SQL Server不能丢,复习一下: varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输入数据的字节的实际长度,而不是 n 个字节. nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍. 两字段分别有字段值:我和coffee 那么varchar字段占2×2+6=10个字节的存储空间,而nva

SQL Server 基础学习1-简介

一.数据库简介 数据库:分为 层次型,网状型,关系型.现在通常都是使用关系型.SQL Server 是一种大型的数据库软件,是用来管理和修改数据库的.DB(Database) DBMS(数据库管理系统) DBS(数据库系统). 主流的数据库:SQLServer,Oracle,DB2,sybase,access,foxpro SQL语言——国际化标准.Transaction-SQL,PL-SQL 二.数据库的文件分类 1.mdf主数据文件,包含数据库的启动信息,每个数据库必须有一个主数据文件. 2

SQL Server LocalDB 学习笔记 02 基本管理

管理LocalDB 1. SqlLocalDB命令 安装完毕之后,可以看看环境变量中的Path,一般都会有 %ProgramFiles%\Microsoft SQL Server\110\Tools\Binn 这个就是SqlLocalDB存放的位置,如果在cmd之下不生效,编辑按钮点一下(什么都不改),之后确定,最后外层确定,就让新的Path生效了. 创建数据库实例 c SqlLocalDB create "实例名字" -s 参数-s可选,加上之后表示创建之后直接启动实例 删除数据库实

SQL Server LocalDB 学习笔记 01 简介

SQL Server 2012 新增产品 SQL Sever Express轻量级版本 转为开发人员创建 无需管理 兼用T-SQL语言 编程接口与SQL Server Express一样 适用于小型应用环境.嵌入式环境 好处:无需再笔记本安装维护一个庞大的SQL Server实例了. 特性: 兼容其他SQL Server版本,使用sqlservr.exe作为服务进程,使用相同的客户端访问接口,兼容T-SQL编程语言. 无需安装多个LocalDB,不同程序可以并行执行多个LocalDB进程,所有的

SQL SERVER 内存学习系列(二)-DMV查看内存信息

内存管理在SQL Server中有一个三级结构.底部是内存节点,这是最低级的分配器,用于SQL Server的内存.第二个层次是由内存Clerk组成,这是用来访问内存节点和缓存存储,缓存存储则用于缓存.最上层包含内存对象,它提供了一个比内存Clerk更小程度的粒度,内存对象允许直接.只有Clerk可以访问存储节点,来分配内存,所以每一个需要分配大量内存的组件都需要在SQL Server服务启动时创建它自己的内存Clerk. 以前版本的SQL Server需要SQL Server内存分配之外的VA