【一篇文章就够了】SQLserver简单语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【⼀篇⽂章就够了】SQLserver简单语法如果你和楼主⼀样,有MySql的基础,那么想要学会如何使⽤SqlServer,这篇⽂章就够了
⼦查询
语法:WITH table_name AS alias (select statement)
例⼦:
WITH T AS
(
SELECT
a.*
FROM student a
)
SELECT *
FROM T
WITH (NOLOCK)
语法:FROM table_name WITH (NOLOCK)
例⼦:
SELECT a.*
FROM student a WITH (NOLOCK)
WHERE (${sqlWhere})
所有Select加 With (NoLock)解决阻塞死锁,。
stuff 与 for xml path 连⽤
多条数据合并,
CASE
语法:
SELECT CASE input_expression
WHEN when_expression THEN result_expression
WHEN when_expression THEN result_expression
......
ELSE else_result_expression END AS 'alias'
FROM databasename.dbo.tablename
例⼦:
SELECT CASE sex
WHEN '⼥' THEN 1
WHEN '男' THEN 2
ELSE 0
END AS '性别'
FROM sutdent
语法:
SELECT CASE
WHEN boolean_expression THEN result_expression
WHEN boolean_expression THEN result_expression
......
ELSE else_result_expression END AS 'alias'
FROM databasename.dbo.tablename
例⼦:
SELECT CASE
WHEN sex = '⼥' THEN 1
WHEN sex = '男' THEN 2
ELSE 0
END AS '性别'
FROM sutdent
语法:
SELECT column_name = ** CASE**
WHEN boolean_expression/ when_expression THEN result_expression
WHEN boolean_expression/ when_expression THEN result_expression
......
ELSE else_result_expression END AS 'alias'
FROM databasename.dbo.tablename
例⼦:
SELECT sex = CASE
WHEN '⼥' THEN 1
WHEN '男' THEN 2
ELSE 0
END
FROM sutdent
简单来说就向Java⾥⾯的Switch,
TOP
语法:TOP 1 column_name
例⼦:
SELECT TOP 13 id FROM VIPPlan;
取前n数字,默认按照column正序排列。
如果后跟的不是列名,就赋值。
SELECT TOP 13 'id' FROM VIPPlan;
CONVERT()
CONVERT(VARCHAR(19),GETDATE(),120)
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
CONVERT() 函数是把⽇期转换为新数据类型的通⽤函数,
GETDATE()
返回的是SQL Server所在服务器的时间
OVER PARTITION BY
PARTITION BY 字段根据该字段汇总,。
ROW_NUMBER() OVER()
ROW_NUMBER()就是⽣成⾏数的⽅法,会根据OVER()⾥⾯的内容为表⽣成⼀列序号。
括号⾥经常使⽤partition by、order by 经常⽤(ROW_NUMBER() OVER (ORDER BY createTime DESC )) AS rownumber来为表添加序列号。
ISNULL
ISNULL(参数1,参数2),判断参数1是否为NULL,如果是,返回参数2,否则返回参数1。
DATEDIFF
⽤法:DATEDIFF() 函数返回两个⽇期之间的时间,例如:
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate
SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate
BEGIN END
Begin...End通常⽤来表⽰⼀个语句块,其内部的代码可以包含⼀组T-SQL语句,凡是在这个语句块⾥的所有代码,都属于同⼀流程控制。
Begin...End语句通常与If、While语句搭配使⽤。
OUTER APPLY
简单的理解,OUTER APPLY相当于LEFT JOIN,CROSS APPLY相当于INNER JOIN,详细请看
https:///wikey_zhang/article/details/77480118。
EXISTS
带有Exists的⼦查询不返回任何记录的数据,只返回逻辑值“True”或“False”,如果为True查询成功,如果为False查询失败,返回空。
详细请看https:///xiaouncle/article/details/88084889。
计算过程中的保留两位⼩数的百分⽐
ltrim(cast(a * 1.0 / b * 100 AS DEC(10, 2))) + '%'
分页
offset ${startrow} rows fetch next ${pagesize} rows only。