实际工作中,总会遇到一些常用的或不常用的sql,这些sql可能并没多少技术含量,但对我们本身而言,一个最大的问题就是很容易忘记。对我个人而言,以前常用的,过阵子之后再用到,发现不记得了。由此得出结论,一些知识点,还是记录下来好,方便以后查阅,说不定还能对别人有帮助呢。
1、分页
Row_Number()实现:
SELECT *
FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY ID) NO, *
FROM dbo.Student
) V
WHERE V.NO BETWEEN 31 AND 40
OffSet 实现:
SELECT *
FROM dbo.Student
ORDER BY ID
OFFSET 30 ROWS FETCH NEXT 10 ROWS ONLY
2、插入记录并返回自增列
INSERT INTO dbo.Student
( NAME ,
SEX ,
BIRTHDAY ,
NATION ,
CLASS ,
ADDRESS
)
VALUES ( N'' , -- NAME - nvarchar(50)
N'' , -- SEX - nchar(10)
GETDATE() , -- BIRTHDAY - date
N'' , -- NATION - nchar(10)
N'' , -- CLASS - nchar(10)
N'' -- ADDRESS - nvarchar(100)
)
SELECT @@IDENTITY
3、随机选取10条记录
SELECT TOP 10 *
FROM dbo.Student
ORDER BY NEWID()
4、PIVOT转置表值表达式
SELECT Name, [语文],[数学],[英语]
FROM dbo.Student_Score
PIVOT
(
SUM(Score)
FOR Course IN ([语文],[数学],[英语])
) p
ORDER BY Name