1.TOP 子句

TOP 子句用于规定要返回的记录的数目。

对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。

SQL Server 的语法:

SELECT TOP number|percent column_name(s)

FROM table_name

2.’%%’查询

我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '[ALN]%'

3. IN 操作符实例

现在,我们希望从上表中选取姓氏为 Adams 和 Carter 的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE LastName IN ('Adams','Carter')

4. LEN() 函数

LEN 函数返回文本字段中值的长度。

SQL LEN() 语法

SELECT LEN(column_name) FROM table_name

5. ROW_NUMBER()OVER()函数

ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

6. ROUND 函数

用于把数值字段舍入为指定的小数位数。

语法

ROUND ( numeric_expression , length [ , function ] )

参数

numeric_expression

精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

length是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。

7.HAVING 子句

在 SQL 中增加 HAVING 子句原因是WHERE 关键字无法与合计函数一起使用。

SQL HAVING 语法

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value

Having 只用于查询条件中有合计函数的。

8. ISNULL函数

(1)ISNULL
使用指定的替换值替换 NULL。
语法
ISNULL ( check_expression , replacement_value )

这里isnull用于查询字段里

(2)

case when isnull(b.c_delivery_type,'')='' then  b.c_delivery_type else a.c_delivery_type end  as 物流方式

null是特殊的值,他不能被进行比较,所以=<>等这些符号是不能判断null的,所以isnull(字段名,'')='',把null转换成'',再和''比较,而字段名='',由于没有处理null的情况,所以如果字段有null值,将被忽略

9.union 用法

分为union与union all
union 缺省在合并结果集后消除重复项,

union all 指定在合并结果集后保留重复项,

打个比喻吧 比如A表的数据是 A{
1,4,5,9}       B{2,3,4,5}
那我执行此语句 select * from A union select * from B 那结果是{1,2,3,4,5,9}
如果执行select * from A union all select * from B 结果是{1,2,3,4,4,5,5,9}

10. DateDiff()

DATEDIFF 函数计算指定的两个日期中第二个日期与第一个日期的时间差的日期部分。换句话说,它得
出两个日期之间的间隔。结果是等于 date2 - date1 的日期部分的带符号整数值。

表达式DateDiff(timeinterval,date1,date2
[, firstdayofweek [, firstweekofyear]])

允许数据类型:
timeinterval 表示相隔时间的类型,代码为:

年份 yy、yyyy 季度 qq、q

月份 mm、m

每年的某一日 dy、y

日期 dd、d

星期 wk、ww

工作日 dw

小时 hh

分钟 mi、n

秒 ss、s

毫秒 ms

11. datepart()函数

DATEPART()
函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

DATEPART(datepart,date)

date 参数是合法的日期表达式。datepart 参数可以是下列的值:

datepart

缩写

yy, yyyy

季度

qq, q

mm, m

年中的日

dy, y

dd, d

wk, ww

星期

dw, w

小时

hh

分钟

mi, n

ss, s

毫秒

ms

微妙

mcs

纳秒

ns

12. join函数

sqlleft joinright joininner join的区别

left
join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行

13. group by

group by 对结果集分组,针对每一组返回一行。

若select子句中包含聚合函数,则聚合函数返回每个组的信息

若指定group by时,select语句后的所有非聚合函数字段必须出现在group by列表中。

14. cast()

Cast()函数是转换数据类型的

CAST 和 CONVERT
(Transact-SQL),将一种数据类型表达式转换为另一种数据类型的表达式

Transact-SQL 语法约定

语法

Syntax for CAST:

CAST ( expression AS data_type [ (length )
])

Syntax for CONVERT:

CONVERT ( data_type [ ( length ) ] ,
expression [ , style ] )

参数

expression

任何有效的表达式

data_type

目标数据类型。这包括 xml、bigint 和 sql_variant。不能使用别名数据类型。有关可用数据类型的详细信息,请参阅数据类型
(Transact-SQL)。

length

指定目标数据类型长度的可选整数。默认值为
30。

style

指定 CONVERT 函数如何转换 expression 的整数表达式。如果样式为 NULL,则返回 NULL。该范围是由
data_type 确定的。有关详细信息,请参阅“备注”部分。

15. dateadd()

定义和用法

DATEADD() 函数在日期中添加或减去指定的时间间隔。

语法

DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:

datepart

缩写

yy, yyyy

季度

qq, q

mm, m

年中的日

dy, y

dd, d

wk, ww

星期

dw, w

小时

hh

分钟

mi, n

ss, s

毫秒

ms

微妙

mcs

纳秒

ns

16. datepart()

定义和用法

DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

语法

DATEPART(datepart,date)

date 参数是合法的日期表达式。datepart 参数可以是下列的值:

datepart

缩写

yy, yyyy

季度

qq, q

mm, m

年中的日

dy, y

dd, d

wk, ww

星期

dw, w

小时

hh

分钟

mi, n

ss, s

毫秒

ms

微妙

mcs

纳秒

ns

17. charindex() substring()

SQL CHARINDEX

函数返回字符或者字符串在另一个字符串中的起始位置

CHARINDEX

函数调用方法如下:

CHARINDEX ( expression1 , expression2 [ ,
start_location ] )

Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在

expression2中找expression1的位置。SQL CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置

select
substring('123,456',charindex(',','123,456') ,len('123.456')-3)  结果: ',456'
意思:截取’123,456‘ 从第4为开始截取 4位

substring(字段,第几个字符开始截取,截取长度)
charindex(',','123,456')  ‘,’的位置 结果为:4
len('123.456')  字段长度  结果为:7

18. decimal()

decimal(a,b)
a指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。
b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。

19. right()

反回字符右边的指定长度的字符

例:select right('1234',2)
结果:34

20. 取整函数

1 trunc(value,precision)按精度(precision)截取某个数字,不进行舍入操作。
2 round(value,precision)根据给定的精度(precision)进行四舍五入。
3 ceil (value) 产生大于或等于指定值(value)的最小整数。
4 floor(value)与 ceil()相反,产生小于或等于指定值(value)的最小整数。
5 sign(value) 与绝对值函数ABS()相反。ABS()给出的是值的量而不是其符号,sign(value)则给出值的符号而不是量。

21. partition by

partition by的作用仅用于分组

22.convert()

定义和用法

CONVERT() 函数是把日期转换为新数据类型的通用函数。

CONVERT() 函数可以用不同的格式显示日期/时间数据。

语法

CONVERT(data_type(length),data_to_be_converted,style)

data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

可以使用的 style 值:

Style ID

Style 格式

100 或者 0

mon dd yyyy hh:miAM (或者 PM)

101

mm/dd/yy

102

yy.mm.dd

103

dd/mm/yy

104

dd.mm.yy

105

dd-mm-yy

106

dd mon yy

107

Mon dd, yy

108

hh:mm:ss

109 或者 9

mon dd yyyy hh:mi:ss:mmmAM(或者 PM)

110

mm-dd-yy

111

yy/mm/dd

112

yymmdd

113 或者 13

dd mon yyyy hh:mm:ss:mmm(24h)

114

hh:mi:ss:mmm(24h)

120 或者 20

yyyy-mm-dd hh:mi:ss(24h)

121 或者 21

yyyy-mm-dd hh:mi:ss.mmm(24h)

126

yyyy-mm-ddThh:mm:ss.mmm(没有空格)

130

dd mon yyyy hh:mi:ss:mmmAM

131

dd/mm/yy hh:mi:ss:mmmAM

实例

下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:

CONVERT(VARCHAR(19),GETDATE())

CONVERT(VARCHAR(10),GETDATE(),110)

CONVERT(VARCHAR(11),GETDATE(),106)

CONVERT(VARCHAR(24),GETDATE(),113)

结果类似:

Dec 29 2008 11:45 PM

12-29-2008

29 Dec 08

29 Dec 2008 16:25:46.635

语句及查询结果:

SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM

SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06

SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16

SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06

SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06

SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06

SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06

SELECT CONVERT(varchar(100), GETDATE(), 7): 05 1606

SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46

SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM

SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06

SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16

SELECT CONVERT(varchar(100), GETDATE(), 12): 060516

SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937

SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967

SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47

SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157

SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM

SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47

SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250

SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM

SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006

SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16

SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006

SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006

SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006

SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006

SELECT CONVERT(varchar(100), GETDATE(), 107): 05 162006

SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49

SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM

SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006

SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16

SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516

SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513

SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547

SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49

SELECT CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49:000

23 Sql Server
REPLACE函数的使用

REPLACE
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。

Replace(‘123456’,’23’,’9’)

将123456中的23用9替换掉

24 str(a,b,c)函数

将数值型转换成指定长度的字符串

如select STR(12345.633,7,1) 结果为12345.6

第一个参数是要转换的数值,

第二个参数是转换後的总长度(含小数点,正负号),

第三个参数为小数位

25 .INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from
Table1

26. select 1 from table

Select 1 from table 是查询表的数据有多少,select
* from table是查询表的所有数据的详细信息

27.rand()函数

SQL RAND函数调用​可以产生随机数

Select rand()获取介于0和1之间的一个数(小数)

Select rand()*10获取0和10之间的一个数(小数)

Select str(rand()*10)获取0和10之间的一个数(整数)

Select str(rand()*10000) 获取0和10000之间的一个数(整数)

28.存储过程中的SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 语句用法

SET QUOTED_IDENTIFIER 为ON时,标识符可以由双引号分隔,文字必须由单引号分隔

SET ANSI_NULLS,就是说NULL是否可以进行=和<>比较;

当设置为ON 时,表示不可以进行比较,凡是进行比较的,结果都为0

当设置为 OFF时,表示可以进行比较,比较的结果就是实际结果

29. ISNUMERIC

判断参数是否是纯数字型

30.rtrim函数

截断所有尾随空格后返回一个字符串。

 

sql server中部分函数功能详解的更多相关文章

  1. SQL Server中的锁 详解 nolock,rowlock,tablock,xlock,paglock

    摘自: http://www.myexception.cn/sql-server/385562.html 高手进 锁 nolock,rowlock,tablock,xlock,paglock 锁 no ...

  2. sql server中的日期详解使用(convert)

    转自:http://blog.csdn.net/hehe520347/article/details/48496853 有个字段值例如2012-07-02 00:00:00.000 转化成 2012- ...

  3. SQL server中的parsename详解

    1.SQL server中如何拆分ip地址 比如有一个ip地址是 192.168.0.8 2.再或者,如何拆分一个包装比例,比如1:5:3 用parsename方法即可以实现: select pars ...

  4. SQL Server 执行计划操作符详解(3)——计算标量(Compute Scalar)

    接上文:SQL Server 执行计划操作符详解(2)--串联(Concatenation ) 前言: 前面两篇文章介绍了关于串联(Concatenation)和断言(Assert)操作符,本文介绍第 ...

  5. SQL Server 执行计划操作符详解(2)——串联(Concatenation )

    本文接上文:SQL Server 执行计划操作符详解(1)--断言(Assert) 前言: 根据计划,本文开始讲述另外一个操作符串联(Concatenation),读者可以根据这个词(中英文均可)先幻 ...

  6. SQL Server 事务隔离级别详解

    标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设置数据库事务级别 SQL 事务隔离级别 概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一 ...

  7. SQL Server:孤立用户详解

    SQL Server 的用户安全管理分两层,整个SQL Server 服务器一层,每个数据库一层. 在服务器层的帐号,叫登录账户(SQL Server:服务器角色),可以设置它管理整个SQL Serv ...

  8. SQL Server DBA工作内容详解

    在Microsoft SQL Server 2008系统中,数据库管理员(Database Administration,简称为DBA)是最重要的角色.DBA的工作目标就是确保Microsoft SQ ...

  9. SQL Server 执行计划操作符详解(1)——断言(Assert)

    前言: 很多很多地方对于语句的优化,一般比较靠谱的回复即使--把执行计划发出来看看.当然那些只看语句就说如何如何改代码,我一直都是拒绝的,因为这种算是纯蒙.根据本人经验,大量的性能问题单纯从语句来看很 ...

随机推荐

  1. Rest Project Performace Pressure Test

    首次调整基线和配置修改 机器配置为 CPU: Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.6GHz 24core 内存: 128G JDK Ver: 1.7.0_80 To ...

  2. MySQL 安装 5.0

    MySQL免安装版配置 1.下载 MySQL 免安装版 2.将 MySQL 解压到待安装目录,使用%MYSQL_HOME%表示 3.打开文件my-huge.ini另存为my.ini,在my.ini文件 ...

  3. Scrum

    Scrum[编辑] 维基百科,自由的百科全书   Scrum是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程.Scrum在英语是橄榄球运动中争球的意思. 虽然Scrum是为管理软件开发项目而开发 ...

  4. JVM内存划分基础知识

    第一部分 JVM内存划分 目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbag ...

  5. vue原来可以这样上手

    今儿与一群友讨论vue相关问题让我思量极深,1.我们是否在争对性解决问题或者说是帮助别人:2.我们是否在炫耀自己的技能.以下是被戏剧化的对白: "群友":最近按照vue官网示例学习 ...

  6. JS中常见排序算法详解

    本文将详细介绍在JavaScript中算法的用法,配合动图生动形象的让你以最快的方法学习算法的原理以及在需求场景中的用途. 有句话怎么说来着: 雷锋推倒雷峰塔,Java implements Java ...

  7. windows服务用脚本无法启动

    1.创建windows服务工程 工程名:ServiceDemo 2.添加加载启动及卸载服务脚本 加载及启动批处理: @echo off if exist "%SystemRoot%/Micr ...

  8. 离职了,在家温故而知新----1 设计模式 & 开头

    工作四年有余,编写的代码都是业务代码.不涉及低层. 目前离职在家,过年完了,准备找工作了. 决定温故而知新,复习也是学习. 本着随遇而安的原则,随便从之前设计的众多条目中选择了一条开始复习. 设计模式 ...

  9. [html5] 学习笔记-服务器推送事件

    1.HTML5服务器推送事件介绍 服务器推送事件(Server-sent Events)是Html5规范的一个组成部分,可以用来从服务端实时推送数据到浏览器端. 传统的服务器推送技术----WebSo ...

  10. Biztalk AS2开发经验总结

    一.    准备证书    4 1.    升级win2008 R2证书服务    4 2.    申请证书    6 二.    配置证书    13 1.    为AS2配置证书    13 2. ...