男人狂躁进女人下面免费视频
男人狂躁进女人下面免费视频
你的位置:男人狂躁进女人下面免费视频 > 熟妇高潮喷沈阳45熟妇高潮喷 > 几个SQL查询小本事,你会吗?

几个SQL查询小本事,你会吗?

发布日期:2022-06-18 17:12    点击次数:118

几个SQL查询小本事,你会吗?

 

本文转载自微信公众号「SQL数据库竖立」,作家丶世俗寰宇。转载本文请联系SQL数据库竖立公众号。

行列诊治

问题:假定有张学生得益表(tb)如下:

想形成(得到如下成果):

代码:

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  姓名 
分页

决策一:行使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 
成果团结

团结叠加行

SELECT * FROM A  UNION  SELECT * FROM B 

分离并叠加行

SELECT * FROM A UNION ALL SELECT * FROM B 
就地排序
SELECT * FROM TestTable ORDER BY NEWID() 

还不错鸠合TOP取就地的前N笔记载

SELECT TOP 100 * FROM TestTable ORDER BY NEWID() 
以随便标识分隔取双方数据

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

分割成如下图所示:

SELECT R, CASE WHEN  CHARINDEX(',',R)>1 THEN  LEFT(R,CHARINDEX(',',R)-1) ELSE NULL END AS R1 , CASE WHEN CHARINDEX(',熟妇高潮喷沈阳45熟妇高潮喷',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咱们也不错用近似的法式取得到。

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是比及具体某个时刻才启动现实