在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

SQL查询的技巧

132次阅读
没有评论

共计 1850 个字符,预计需要花费 5 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍 SQL 查询的技巧,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1、行列转换

问题:假设有张学生成绩表 (tb) 如下:

SQL 查询的技巧

想变成(得到如下结果):

SQL 查询的技巧

代码:

WITH tb(姓名, 课程, 分数) AS
SELECT N 张三 ,N 语文 ,74
UNION ALL
SELECT N 张三 ,N 数学 ,83
UNION ALL
SELECT N 张三 ,N 物理 ,93
UNION ALL
SELECT N 李四 ,N 语文 ,79
UNION ALL
SELECT N 李四 ,N 数学 ,86
UNION ALL
SELECT N 李四 ,N 物理 ,88
SELECT  姓名  ,
MAX(CASE  课程  WHEN  语文  THEN  分数  ELSE 0 END)  语文,
MAX(CASE  课程  WHEN  数学  THEN  分数  ELSE 0 END)  数学,
MAX(CASE  课程  WHEN  物理  THEN  分数  ELSE 0 END)  物理
FROM tb GROUP BY  姓名

2、分页

方案一:利用 NOT IN 和 SELECT TOP 分页语句形式

SELECT TOP 10 * FROM TestTable
WHERE ID NOT IN
(SELECT TOP 20 ID FROM TestTable ORDER BY ID)
ORDER BY ID

方案二:利用 ID 大于多少和 SELECT TOP 分页语句形式

SELECT TOP 10 * FROM TestTable
WHERE ID   (SELECT MAX(id) FROM 
(SELECT TOP 20 id FROM 
TestTable ORDER BY id) AS T)
ORDER BY ID

方案三:利用 SQL Server 中的特性 ROW_NUMBER 进行分页

SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY ID DESC) AS ROWID,*
 FROM TestTable
) AS mytable where ROWID between 21 and 40

3、结果合并

合并重复行

 SELECT * FROM A
UNION
SELECT * FROM B

不合并重复行

SELECT * FROM A
UNION ALL
SELECT * FROM B

4、随机排序

SELECT * FROM TestTable ORDER BY NEWID()

还可以结合 TOP 取随机的前 N 条记录

SELECT TOP 100 * FROM TestTable ORDER BY NEWID()

5、以任意符号分隔取两边数据

例如我们以逗号 (,) 来分割数据,将如下数据

SQL 查询的技巧

分割成如下图所示:

SQL 查询的技巧

SELECT R,
CASE WHEN CHARINDEX(, ,R) 1 THEN LEFT(R,CHARINDEX( , ,R)-1) ELSE NULL END AS R1 ,
CASE WHEN CHARINDEX(, ,R) 1 THEN RIGHT(R,(LEN(R) - CHARINDEX(, ,R))) ELSE NULL END AS R2
FROM t

代码较长,我们对代码进行拆分来理解:

SELECT CHARINDEX(, , ,) -- 结果是 1
SELECT CHARINDEX(, , NULL) -- 结果是 0
SELECT CHARINDEX(, ,) -- 结果是 0
SELECT CHARINDEX(, , A,B) -- 结果是 2
SELECT LEN(A,B) -- 结果是 3
SELECT LEN(A,B) - CHARINDEX(, , A,B) -- 结果是 3 -2=1
SELECT RIGHT(A,B ,( LEN( A,B) - CHARINDEX(, , A,B))) -- 结果是  B

最后一步我们将 A,B 拆分出来了 B,同理 A 我们也可以用类似的方法获取到。

6、WAITFOR 延时执行

例 等待 1 小时 2 分零 3 秒后才执行 SELECT 语句

WAITFOR DELAY  01:02:03 
SELECT * FROM Employee

其中 DELAY 是在延时多长时间后才开始执行。

例 等到晚上 11 点零 8 分后才执行 SELECT 语句

WAITFOR TIME  23:08:00 
SELECT * FROM Employee

其中 TIME 是等到具体某个时刻才开始执行

以上是“SQL 查询的技巧”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1850字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产又色又爽无遮挡免费动态图 | 中文字幕欧美一区 | 岛国片人妻三上悠亚 | 国产女人aaa级久久久级 | 国产精品一区二区在线播放 | 久久中文字幕免费视频 | 看一级特黄a大一片 | 影音先锋在线_让看片永远陪伴 | 青青草成人在线 | 国产成人福利视频网站 | 色狠狠一区二区三区香蕉 | 国内国语一级毛片在线视频 | 中文字幕视频一区 | 国产高清美女一级a毛片久久 | 国内精品久久久久久久星辰影视 | 日本一级吃奶挤奶 | 国产清纯美女遭强到高潮 | 国产精品1区2区3区 国产精品1区2区3区在线播放 | 中文字幕热久久久久久久 | 久久在精品线影院精品国产 | 久久精品国产99国产精品澳门 | 亚洲精品一区二区久久这里 | a久久99精品久久久久久不 | 久久亚洲天堂 | 日本极品少妇xxxx | 久热这里只有精品视频6 | 午夜免费体验 | 亚洲春黄在线观看 | 成人久久久 | 国产在线无码精品无码 | 孕妇怀孕高潮潮喷视频孕妇 | 最新国产精品亚洲 | 极品熟妇大蝴蝶20p 极品丝袜高跟91白沙发在线 | 亚洲爆乳成av人在线视菜奈实 | 久久久久久综合对白国产 | 九九99热久久国产 | 日韩精品久久无码人妻中文字幕 | 国产思思99re99在线观看 | 秋霞午夜视频在线观看 | 18禁裸体动漫美女无遮挡网站 | 免费黄动漫在线观看 |