亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

讀《程序員的SQL金典》[3]--表連接、子查詢

2024-07-21 02:50:50
字體:
來源:轉載
供稿:網友
讀《程序員的SQL金典》[3]--表連接、子查詢一、表連接-JOIN

1. 自連接實例

查詢類型相同的訂單信息。

SELECT O1 .*,O2.*FROM T_Order O1 JOIN T_Order O2ON O1 .FTypeId= O2.FTypeId AND O1.FID <O2. FId

Image(3)

二、子查詢

子查詢允許將sql語句查詢結果作為結果集供其他語句使用。子查詢可以簡化復雜sql,但是使用不當會造成性能問題。

1.INSERT子查詢

INSERT...SELECT....可以將SELECT查詢結果導入到另外一個表中,并且可以在導入之前對數據進行處理。

例如:

INSERT INTO T_ReaderFavorite2( [FCategoryId],FReaderId )SELECT FCategoryId ,(FReaderId+ 1)FROM T_ReaderFavorite

2.UPDATE子查詢

可以在UPDATE的where子句中使用子查詢。

例如:

UPDATE T_BookSET FYearPublished =2014WHERE(SELECT COUNT (*)FROM T_Book b2 WHERE T_Book .FCategoryId= b2.FCategoryId)>3

3.DELETE子查詢

DELETE FROM T_ReaderFavoriteWHERE(SELECT COUNT (*) FROM T_ReaderFavorite T WHERE T. FCategoryId=T_ReaderFavorite .FCategoryId)>=5
三、NULL

我們都知道,NULL在數據庫中表示某個字段的值為未知。

以下面的數據為例:

Image(4)

1.NULL與比較運算符

在比較運算符運算時,運算結果仍未NULL,因為DBMS認為無法確定NULL是否在某個取值范圍之內。例如:

SELECT * FROM T_Employee WHERE FSalary< 5000 OR FSalary>=5000

Image(5)

2.NULL與計算字段

如果NULL值出現在任何計算字段中,那么運算結果都為NULL。

可以根據具體業務需求進行處理,例如使用IS NOT NULL進行過濾,或者將Null處理成其他值。

例如:

SELECT FSalary /1000 FROM T_Employee WHERE FSalary IS NOT NULLSELECT (CASE WHEN FSalary IS NULL THEN 0 ELSE FSalary END)/1000 FROM T_Employee

3.NULL與字符串運算

如果NULL與字符串進行計算,那么結果也都是NULL.

SELECT 'dear ' +FName FROM T_Employee

Image(6)

4.NULL與函數

NULL值出現在普通函數時,結果還是NULL; 但當NULL值出現在聚合函數時,NULL值將被忽略。

SELECT FSalary +1000 FROM T_Employee

Image(7)

SELECT Count (Fid), COUNT(FSalary ) FROM T_Employee

Image(8)

四、開窗函數

1. OVER()

開窗函數可以對結果集進行聚合計算,但和平時用的聚合函數有些差別??磦€實際例子:

想查詢工資低于5k的員工姓名和年齡,并且每行都要展示符合條件人群總數。

SELECT FName ,FAGE , ( SELECT COUNT (*)FROM T_Person WHERE FSALARY< 5000)FROM T_PersonWHERE FSALARY <5000

Image(9)

通過子查詢方式實現的想要的結果,但是使用開窗函數可以更加簡單。

開創函數格式:函數(列) OVER()。

==》

SELECTFName,FAGE,COUNT(*)OVER()FROMT_PersonWHEREFSALARY<5000

2.PARTITION BY()

開窗函數OVER后面括號中可以使用PARTITION BY子句進行行的分區來進行聚合運算,而且可以創建多個分區。這些分區主要是用來進行聚合運算的,不會影響結果集。

COUNT (*) OVER (PARTITION BY FCITY )表示按照FCITY字段進行分區,并且返回當前行所屬的組的聚合計算結果。

實例:

SELECT FCITY ,FAGE, COUNT(*) OVER(PARTITION BY FCITY) AS NUM1 ,COUNT(*) OVER( PARTITION BY FAGE ) AS NUM2FROM T_PERSONORDER BY FAGE DESC

Image(10)

3.高級開窗函數

①計算排名

ROW_NUMBER()計算一行在結果集中的行號,可以當作是唯一的排名。

RANK()和DENSE_RANK()函數都是用來計算排名的,不同的是當名次重復時的處理方式。

如:

SELECT FName ,FSalary,ROW_NUMBER() OVER(ORDER BY FSalary DESC ) ,RANK() OVER(ORDER BY FSalary DESC ),DENSE_RANK() OVER(ORDER BY FSalary DESC )FROM T_Person

Image(11)

②NTILE(num)分區

NTILE()函數用來將結果集中的行按照某個列的值進行平均分割,然后返回當前行所在的區域編號。NTILE()函數接受一個整數類型的值,這個值表示把結果集分割成的份數。注意必須在NTILE()函數后的OVER()子句中使用ORDER BY指定排序。

SELECT FName , FSalary ,FAge,NTILE(3 ) OVER (ORDER BY FSalary )FROM T_Person ;

Image(12)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内外成人免费激情在线视频| 久久人人看视频| 91精品国产高清自在线看超| 亚洲天堂视频在线观看| 热草久综合在线| 欧美在线一级va免费观看| 成年人精品视频| 亚洲一区二区三区xxx视频| 欧美性猛交xxxx免费看久久久| 亚洲综合日韩在线| 欧美—级a级欧美特级ar全黄| 日韩亚洲精品电影| 国模叶桐国产精品一区| 久操成人在线视频| 国产精品人人做人人爽| 一二美女精品欧洲| 精品在线观看国产| 黄网站色欧美视频| 亚洲成人av片在线观看| 91精品国产91久久久久久久久| 欧美性生交大片免网| 国内精久久久久久久久久人| 欧美日韩国产精品一区二区不卡中文| 亚洲一区二区三区在线视频| 亚洲一区亚洲二区亚洲三区| 91精品在线一区| 美女性感视频久久久| 国产日韩av在线| 97国产一区二区精品久久呦| 欧美日韩一区二区三区| 69av视频在线播放| 在线免费观看羞羞视频一区二区| 97国产精品视频| 久久视频在线视频| 欧美极品少妇xxxxx| 亚洲成人免费在线视频| 国产在线精品自拍| 亚洲丝袜一区在线| 在线精品国产成人综合| 国产精品久久久久久av| 91av在线不卡| 亚洲伊人第一页| 日韩免费视频在线观看| 中文字幕亚洲第一| 精品人伦一区二区三区蜜桃免费| 成人xxxxx| 97免费视频在线播放| 中文字幕亚洲一区在线观看| 九九热视频这里只有精品| 91在线高清视频| 国产亚洲视频在线观看| 亚洲成人网久久久| 一本色道久久综合亚洲精品小说| 亚洲伊人成综合成人网| 欧美大秀在线观看| 亚洲欧美中文日韩在线v日本| 国产亚洲精品va在线观看| 久久色在线播放| 欧美激情二区三区| 一本色道久久88亚洲综合88| 色琪琪综合男人的天堂aⅴ视频| 欧美www在线| 精品视频偷偷看在线观看| 亚洲精品国产精品自产a区红杏吧| 国产亚洲一级高清| 国产精品一区二区在线| 日韩av免费一区| 中文字幕日本精品| 91久久久久久久久久久| 日韩精品中文字幕在线观看| 国产精品激情av在线播放| 一个人www欧美| 久久久久久一区二区三区| 91久久久久久久久| 深夜福利一区二区| 国产中文字幕91| 欧美激情影音先锋| 91精品国产自产在线老师啪| 成人午夜黄色影院| 热门国产精品亚洲第一区在线| 亚洲精品自拍偷拍| 亚洲а∨天堂久久精品喷水| 日韩精品一区二区视频| 国产精品av在线| 一区二区三区四区在线观看视频| 日本一区二三区好的精华液| 久久伊人精品一区二区三区| 91中文字幕在线| 91在线观看免费高清完整版在线观看| 亚洲免费精彩视频| 久久久久久综合网天天| 国产91精品青草社区| 亚洲欧美中文在线视频| 中文字幕日韩高清| 日韩av有码在线| 在线视频日本亚洲性| 国产成人亚洲综合91精品| 日韩av日韩在线观看| 久久这里有精品| 91久久国产婷婷一区二区| 欧美精品一区二区三区国产精品| 国产精品揄拍500视频| 国产男女猛烈无遮挡91| 久久伊人色综合| 亚洲欧美日韩高清| 国产精品成人免费视频| 亚洲综合小说区| 欧美天天综合色影久久精品| 欧美激情a∨在线视频播放| 精品视频久久久久久| 中文字幕日韩在线观看| 国产福利成人在线| 亚洲欧美日韩精品久久| 国产精品第七影院| 欧美老女人性视频| 久久69精品久久久久久国产越南| 国产精品美女无圣光视频| 18性欧美xxxⅹ性满足| 中文字幕精品一区久久久久| 91免费看片在线| 国内精品小视频| 国产日韩欧美视频| 亚洲国产精品va在线看黑人动漫| 奇门遁甲1982国语版免费观看高清| 4438全国亚洲精品在线观看视频| 成人黄色av播放免费| 95av在线视频| 国产成人福利夜色影视| 久久免费视频在线观看| 成人在线精品视频| 91九色国产视频| 视频直播国产精品| 精品视频在线播放色网色视频| 亚洲大胆人体av| 亚州成人av在线| 欧美亚洲一级片| 欧美精品电影在线| 久久中文字幕视频| 久久久久女教师免费一区| 最近的2019中文字幕免费一页| 欧美片一区二区三区| 国产午夜一区二区| 亚洲福利视频二区| 亚洲精品免费在线视频| 亚洲一区二区免费在线| 在线观看中文字幕亚洲| 久久人人爽人人| 国产男人精品视频| 国产精欧美一区二区三区| 揄拍成人国产精品视频| 国产精品视频最多的网站| 中文字幕在线观看亚洲| 日韩在线一区二区三区免费视频| 久久精品国产精品亚洲| 亚洲精品美女免费| 亚洲精品白浆高清久久久久久| 91国偷自产一区二区三区的观看方式| 欧美乱大交xxxxx另类电影| 黑人巨大精品欧美一区二区| 日本人成精品视频在线| 亚洲第一男人av| 国产精品视频久| 2024亚洲男人天堂| 欧美激情a∨在线视频播放|