成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

幾個(gè)SQL查詢小技巧,你會(huì)嗎?

運(yùn)維 數(shù)據(jù)庫運(yùn)維
sql是一個(gè)大家都比較關(guān)注的熱門話題,無論你在面試,還是工作中,都很有可能會(huì)遇到。以下的小技巧能幫助大家!

 [[437309]]

本文轉(zhuǎn)載自微信公眾號(hào)「SQL數(shù)據(jù)庫開發(fā)」,作者丶平凡世界。轉(zhuǎn)載本文請(qǐng)聯(lián)系SQL數(shù)據(jù)庫開發(fā)公眾號(hào)。

行列轉(zhuǎn)換

問題:假設(shè)有張學(xué)生成績表(tb)如下:

想變成(得到如下結(jié)果):

代碼:

  1. WITH tb(姓名,課程,分?jǐn)?shù)) AS 
  2. SELECT N'張三',N'語文',74 
  3. UNION ALL 
  4. SELECT N'張三',N'數(shù)學(xué)',83 
  5. UNION ALL 
  6. SELECT N'張三',N'物理',93 
  7. UNION ALL 
  8. SELECT N'李四',N'語文',79 
  9. UNION ALL 
  10. SELECT N'李四',N'數(shù)學(xué)',86 
  11. UNION ALL 
  12. SELECT N'李四',N'物理',88 
  13.  
  14. SELECT 姓名 , 
  15. MAX(CASE 課程 WHEN '語文' THEN 分?jǐn)?shù) ELSE 0 END) 語文, 
  16. MAX(CASE 課程 WHEN '數(shù)學(xué)' THEN 分?jǐn)?shù) ELSE 0 END) 數(shù)學(xué), 
  17. MAX(CASE 課程 WHEN '物理' THEN 分?jǐn)?shù) ELSE 0 END) 物理 
  18. FROM tb GROUP BY  姓名 

分頁

方案一:利用NOT IN和SELECT TOP分頁語句形式

  1. SELECT TOP 10 * FROM TestTable 
  2. WHERE ID NOT IN 
  3. (SELECT TOP 20 ID FROM TestTable ORDER BY ID) 
  4. ORDER BY ID 

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

  1. SELECT TOP 10 * FROM TestTable 
  2. WHERE ID > ( 
  3. SELECT MAX(id) FROM  
  4. (SELECT TOP 20 id FROM  
  5. TestTable ORDER BY id) AS T) 
  6. ORDER BY ID 

方案三:利用SQL Server中的特性ROW_NUMBER進(jìn)行分頁

  1. SELECT * FROM ( 
  2.   SELECT ROW_NUMBER() OVER(ORDER BY ID DESCAS ROWID,* 
  3.   FROM TestTable 
  4. AS mytable where ROWID between 21 and 40 

結(jié)果合并

合并重復(fù)行

  1. SELECT * FROM A 
  2.  
  3. UNION 
  4.  
  5. SELECT * FROM B 

不合并重復(fù)行

  1. SELECT * FROM A 
  2. UNION ALL 
  3. SELECT * FROM B 

隨機(jī)排序

  1. SELECT * FROM TestTable ORDER BY NEWID() 

還可以結(jié)合TOP取隨機(jī)的前N條記錄

  1. SELECT TOP 100 * FROM TestTable ORDER BY NEWID() 

以任意符號(hào)分隔取兩邊數(shù)據(jù)

例如我們以逗號(hào)(,)來分割數(shù)據(jù),將如下數(shù)據(jù)

分割成如下圖所示:

  1. SELECT R, 
  2. CASE WHEN  CHARINDEX(',',R)>1 THEN  LEFT(R,CHARINDEX(',',R)-1) ELSE NULL END AS R1 , 
  3. CASE WHEN CHARINDEX(',',R)>1 THEN RIGHT(R,(LEN(R) - CHARINDEX(',',R))) ELSE NULL END AS R2 
  4. FROM  t 

代碼較長,我們對(duì)代碼進(jìn)行拆分來理解:

  1. SELECT  CHARINDEX(',',','--結(jié)果是1 
  2. SELECT  CHARINDEX(',','NULL'--結(jié)果是0 
  3. SELECT  CHARINDEX(',',''--結(jié)果是0 
  4. SELECT  CHARINDEX(',','A,B'--結(jié)果是2 
  5. SELECT  LEN('A,B'--結(jié)果是3 
  6. SELECT  LEN('A,B') - CHARINDEX(',','A,B'--結(jié)果是3-2=1 
  7. SELECT  RIGHT('A,B',( LEN('A,B') - CHARINDEX(',','A,B'))) --結(jié)果是 B 

最后一步我們將'A,B'拆分出來了B,同理A我們也可以用類似的方法獲取到。

WAITFOR延時(shí)執(zhí)行

例 等待1 小時(shí)2 分零3 秒后才執(zhí)行SELECT 語句

  1. WAITFOR DELAY '01:02:03' 
  2.  
  3. SELECT * FROM Employee 

其中 DELAY是在延時(shí)多長時(shí)間后才開始執(zhí)行。

例 等到晚上11 點(diǎn)零8 分后才執(zhí)行SELECT 語句

  1. WAITFOR TIME '23:08:00' 
  2. SELECT * FROM Employee 

其中TIME是等到具體某個(gè)時(shí)刻才開始執(zhí)行

 

責(zé)任編輯:武曉燕 來源: SQL數(shù)據(jù)庫開發(fā)
相關(guān)推薦

2022-11-16 09:04:36

SQL查詢SELECT

2022-09-06 08:07:24

SQL語句查詢

2022-04-06 07:32:41

Java運(yùn)算符變量

2022-03-15 08:36:46

遞歸查詢SQL

2021-02-03 10:46:31

SQL數(shù)據(jù)庫技巧

2011-01-19 09:07:20

Thunderbird

2020-11-03 14:56:09

手機(jī)安全信息泄露漏洞

2024-11-15 10:45:56

2019-04-15 13:24:31

2015-02-04 10:32:57

Objective-CSwift

2022-08-18 10:01:35

Jmeter技巧

2021-02-05 16:20:54

代碼Linux技巧

2009-06-17 15:38:57

java軟件安裝

2020-02-23 23:29:07

Python編程開發(fā)

2009-06-18 11:12:42

Hibernate S優(yōu)化

2021-03-12 10:12:09

etState函數(shù)React

2011-07-05 14:59:17

java

2023-04-12 08:18:40

ChatGLM避坑微調(diào)模型

2023-09-25 13:15:50

SQL數(shù)據(jù)庫

2022-06-07 23:28:05

線程安全后端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩一区二区在线视频 | 国家aaa的一级看片 h片在线看 | 欧美一区二区三区在线 | 日本一区二区影视 | 91电影在线播放 | 日韩在线免费 | 成人妇女免费播放久久久 | 精品国产三级 | 国产成人精品免高潮在线观看 | 在线观看 亚洲 | 国产日韩精品视频 | 日韩成人影院 | 久久久人成影片一区二区三区 | 国产欧美精品区一区二区三区 | 久久午夜剧场 | 日本精品视频一区二区三区四区 | 亚洲一视频 | 亚洲三区视频 | 91不卡 | 美女在线观看av | 欧美激情五月 | 91一区| 国产精品视频网站 | 亚洲精品久久久一区二区三区 | 国产精品一区二区视频 | 成人免费一区二区三区视频网站 | 中文字幕亚洲区一区二 | 日韩欧美亚洲 | 一区二区三区久久 | 日韩精品一区二区在线观看 | 欧美一级在线免费观看 | 日韩在线不卡视频 | 久久综合九色综合欧美狠狠 | 免费国产一区 | 伊人久久大香线 | 五月婷婷在线播放 | a级毛片国产| 瑟瑟视频在线看 | 超碰日本| 久久99国产精品 | 91精品国产综合久久婷婷香蕉 |