日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

from server sql 拼接统计两个子查询_[SQL SERVER系列]之嵌套子查询和相关子查询

發(fā)布時間:2025/3/8 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 from server sql 拼接统计两个子查询_[SQL SERVER系列]之嵌套子查询和相关子查询 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

子查詢有兩種類型,一種是只返回一個單值的子查詢,這時它可以用在一個單值可以使用的地方,這時子查詢可以看作是一個擁有返回值的函數(shù);另外一種是返回一列值的子查詢,這時子查詢可以看作是一個在內(nèi)存中臨時存在的數(shù)據(jù)表。

1.嵌套子查詢

嵌套子查詢的執(zhí)行不依賴于外部的查詢。執(zhí)行過程:

(1)執(zhí)行子查詢,其結果不被顯示,而是傳遞給外部查詢,作為外部查詢的條件使用。

(2)執(zhí)行外部查詢,并顯示整個結果。

嵌套子查詢一般可以分為:返回單值的子查詢?和?返回一個列表的子查詢。

--返回單值的子查詢

SElECT 圖書名,作者,出版社,價格 FROM Books

WHERE 價格 >

(

SELECT AVG(價格)? FROM Books

)

--返回列表的子查詢

SElECT * FROM Readers

WHERE 讀者編號 IN

( SELECT 讀者編號 FROM [Borrow History] )

2.相關子查詢

相關子查詢的執(zhí)行依賴于外部查詢。多數(shù)情況下是子查詢的WHERE子句中引用了外部查詢的表。執(zhí)行過程:

(1)從外層查詢中取出一個元組,將元組相關列的值傳給內(nèi)層查詢。

(2)執(zhí)行內(nèi)層查詢,得到子查詢操作的值。

(3)外查詢根據(jù)子查詢返回的結果或結果集得到滿足條件的行。

(4)然后外層查詢?nèi)〕鱿乱粋€元組重復做步驟1-3,直到外層的元組全部處理完畢。

--查詢Books表中大于該類圖書價格平均值的圖書信息

SElECT圖書名,出版社,類編號,價格FROM?Books?As?aWHERE價格>(SELECT?AVG(價格)FROM?Books?AS?bWHERE?a.類編號=b.類編號)

使用SQL跨表批量導入數(shù)據(jù)時實用的例子

利用相關子查詢只插入test2中不存在的記錄,避免因插入重復記錄而失敗

insert into test2(userid, username)

select userid, username from test1

where not exists(

select userid from test2 where

test2.userid = test1.userid

)

EXISTS就是用來測試子查詢的結果是否為空,如果結果集為空則匹配結果為false,否則匹配結果為true。

--如果存在山東省的讀者,將T_Book表中所有記錄查詢出來;否則,查詢結果為空

SELECT?*?FROM?T_Book?WHERE?EXISTS?(SELECT?*?FROM?T_Reader?WHERE?FProvince='ShanDong'?)

--查詢某一類圖書的分類id,最小最大出版年份,數(shù)量

select C.FId,

MIN(B.FYearPublished) as minpublished,

MAX(B.FYearPublished) as maxpublished,

COUNT(0) as Number

from T_Category C inner join T_Book B

ON C.FId = B.FCategoryId

group by C.FId

--查詢某一類圖書的分類id,圖書的名稱,最早出版年份

select T_Category.FId, T_Book.FName, T_Book.FYearPublished from

T_Category inner join T_Book

ON T_Category.FId = T_Book.FCategoryId

WHERE T_Book.FYearPublished = (

select MIN(T_Book.FYearPublished) from

T_Book WHERE T_Book.FCategoryId = T_Category.FId

)

3.WITH和子查詢

SQL提供了WITH子句用于為子查詢定義一個別名,這樣就可以通過這個別名來引用這個子查詢了,也就是實現(xiàn)“一次定義多次使用”。

WITH子句的格式為:WITH別名AS?(子查詢)

WITH person_tom AS (

SELECT * FROM T_Person?? WHERE FName='TOM'

)

SELECT * FROM T_Person WHERE FAge=person_tom.FAge OR FSalary=person_tom.FSalary

參考文獻:

1.程序員的sql金典

如果您有什么問題,歡迎在下面評論,我們一起討論,謝謝~

如果您覺得還不錯,不妨點下右下方的推薦,有您的鼓勵我會繼續(xù)努力的~

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的from server sql 拼接统计两个子查询_[SQL SERVER系列]之嵌套子查询和相关子查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。