亚洲女同成aV人片在线观看|亚洲www啪成人一区二区麻豆|亚洲国产中日韩精品综合|亚洲国产成人精品一级片|亚洲无码在线视频免费

快速導航×

當前位置: 首頁(yè) >
百度優(yōu)化
sqlserver交集差集的用法詳解發(fā)表于: 2026-05-04 08:08:05

這篇文(′?ω?`)章主要介紹了sql server 交集,交集差集差集的用法詳解,文中通過(guò)示例代碼介紹的用法(╯°□°)╯︵ ┻━┻非常詳(′?ω?`)細,對大家的詳解學(xué)習或者工作具有一定的參考學(xué)習價(jià)值,需要的交集差集朋友們(′_ゝ`)下面隨著(zhù)小編來(lái)一(′;ω;`)起學(xué)習學(xué)習吧

概述

為什么使用集合運算:

在集合運算中比聯(lián)接查詢(xún)和EX(?Д?)ISTS/NOT EXISTS更方便。

并集運算(UNION)

并集:兩個(gè)集合的用法并集是一個(gè)包含集合A和B中所有元素的集合。

在T-SQL中。詳解UNION集合運算可以將兩個(gè)輸入查詢(xún)的交集差集??結果組合成一個(gè)結果集。需要注意的用法是:如果一個(gè)行在任何一個(gè)輸入集合中出現,它也會(huì )在UNION運算的詳解結果中出現。T-SQL支持以下兩種選項:

(1)UNION ALL:不會(huì )刪除重復行

-- union allselect
country,交集差集 region??, city from hr.Employees
union all??
select country, region, city from sales.Customers;

(2)UNION:會(huì )刪除重復行

-- union
select country, region from hr.ヽ(′ー`)ノEmployees
union
select country, region from sales.Customers;

交集運算(INTERSECT)?

交集:兩個(gè)集合(記為集合A和集合B)的交集是由既屬于A(yíng),也屬于B的用法所有元素組成的集合。

在T-SQL中,詳解INTERSECT集合運算對兩個(gè)輸入查詢(xún)的交集差集結果取( ?° ?? ?°)其交集,只返回在兩個(gè)查詢(xún)結果集中都(°ロ°) !出現的用法行。

INTERSECT集合運算在邏輯上會(huì )首先刪除兩個(gè)輸入集中的詳解??重復行,然后返回只在兩個(gè)集合中中都出現的行。換句話(huà)說(shuō):如果一個(gè)行在兩個(gè)輸入集中都至少出(′;ω;`)現一次,那么交集返回的結果中將包含這一行(xing)。

例如,下(╥_╥)面返回既是雇員地址,又是客??戶(hù)地址的不同地址:

-- intersec???t
select country, region, city from hr.Employees
inters??ect
select country, region, city from sales.Customers;

這里需要說(shuō)的是,集合運算對行進(jìn)行比較時(shí),認為兩(liang)個(gè)NULL值相等,所以就返回該行記錄。

差集運算(EXCEPT)

差集:兩個(gè)集合(記為集合A和集合B)(╯°□°)╯的由屬于集合A,但不屬于集?合B的所有元素組成的集合。

在T-SQL中,集合???之差使(shi)用EXCEPT集合運算實(shí)現的。(???)它對兩個(gè)輸入查詢(xún)的結果集進(jìn)行操作,反會(huì )出現在第一個(gè)結果集中,但不出現在第二個(gè)結果集中的所有行。

EXCEPT結合運算在邏輯上首先刪除兩個(gè)輸入集中的重復行,然后返回只在第一個(gè)集合中出現,在第二個(gè)結果集中不出現的所有行。換句話(huà)說(shuō):一個(gè)行能夠被返回,僅當這個(gè)行在第一個(gè)輸入的集合中至少出現過(guò)一次,而且在第二個(gè)集合中( ?ヮ?)一次也沒(méi)出現過(guò)。

此外,相比UNION和INTERSECT,兩(T_T)個(gè)輸入集合??的順序是會(huì )影響到最后返回結果的。

例如,借助EXCEPT運算,我們可以方便地實(shí)現屬于A(yíng)但不屬于B的場(chǎng)景,下面返回屬于員工抵制,但不屬于客戶(hù)地址的地址記錄:

-- except
select country, region, city from hr.Employees
except
select country, region,?? city fr??om sales.Customers;

集合運算優(yōu)先級

SQL定義了集合運算之間的優(yōu)先級:INTERSECT最高,UNION和EXCEPT相等。

換句話(huà)說(shuō):首先會(huì )計算INTERSECT,然后按照從左?至右的出現順序依次處理優(yōu)先級相同的運算。

-- 集合運算的優(yōu)先級
sele??ct country, region, city from Production.Suppliers
except
select country, region, city from hr.Employees
intersect
select country, region, city from sales.Custo┐(′ー`)┌mers;

上面這段SQL代碼,因為INTERSECT優(yōu)先級比EXCEPT高,所以(yi)首先進(jìn)行INTERSECT交集運算。因此,這個(gè)查詢(xún)的含義是:返回沒(méi)有出現在員工地址和(he)客戶(hù)地址交集中的供應商ヽ(′ー`)ノ地址。

集合運算的優(yōu)先級

1.INTERSECT>UNION=EXCEPT

2.首先計算INTERSECT,然后從左到右的出現順序依次處理優(yōu)先(xian)級的相同的運算。

3.可以使用圓括號控制集合運算的(de)優(yōu)先級,它具有最高的優(yōu)先級。

在排序函數的OVER字句中使用ORDER BY ( SELECT <常量> )可以告訴SQL Server不必在意行的順序。

使用表表達式避開(kāi)不支持的邏輯查詢(xún)處理

集合運算查詢(xún)本身并不持之除ORDER BY意外的其他邏輯查詢(xún)處理階段,但可以通過(guò)表表達式來(lái)避開(kāi)(′▽?zhuān)?這一限制。

解決方案就是:首先根據包含集合運算的查詢(xún)定義一個(gè)表表達??式,然后在外部查詢(xún)中對表表達式應用任何需要的邏輯查詢(xún)處理。

(1)例如,下面的查??詢(xún)返回(hui)每個(gè)國家中不同的員工地址或客戶(hù)地址的數量:

select country, COUNT(*) as numlocations
from (select country, region, city from hr.Employees
union
select country, region, city from sales.Customers) as Ugroup by country;

(2)例如,下面的查詢(xún)返回由員工地址為3或5的員工最近處理過(guò)的兩個(gè)訂單:、

select empid,orderid,orderdate
from (select top (2) empid,orderid,o??rderdate
from sales.Orders
where empid=3
order by orderdate desc,orderid des(′ω`)c) as D1
union all
select empid,orderid,orderdate
from (select top (2) empid,orderid,orderdate
from sales.Orders
where empid=5
order by orderdate desc,orderid desc) as(′_ゝ`) D2;

到此這篇關(guān)于sql server 交集,差集的用法詳解的文章就介紹到這了,更多相關(guān)sql server(′?_?`) 交集,差集 內容請搜索腳本之??家ヾ(′ω`)?以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

來(lái)源:腳本之家

鏈接:https://w??ww.(//ω//)j??b51.net/article/191585.htm(╯‵□′)╯

亚洲女同成aV人片在线观看|亚洲www啪成人一区二区麻豆|亚洲国产中日韩精品综合|亚洲国产成人精品一级片|亚洲无码在线视频免费 临朐县| 湖口县| 巴中市| 临桂县| 县级市| 广元市| 富裕县| 玛沁县| 雷山县| 崇义县| 元朗区| 政和县| 当雄县| 丹阳市| 湄潭县| 定兴县| 兴山县| 应用必备| 桦川县| 社旗县| 阿合奇县| 阜宁县| 宁波市| 上犹县| 夏津县| 纳雍县| 冕宁县| 南郑县| 云林县| 财经| 瑞丽市| 扶绥县| 荥经县| 儋州市| 柘城县| 舒兰市| 阿克苏市| 渝中区| 九江县| 教育| 芦溪县| http://444 http://444 http://444 http://444 http://444 http://444