好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > sql server 交集,差集的用法詳解

sql server 交集,差集的用法詳解

熱門標簽:地圖標注如何弄全套標 萬利達綜合醫院地圖標注點 股票配資電銷機器人 南京電銷外呼系統哪家好 在電子版地圖標注要收費嗎 武漢AI電銷機器人 電銷機器人 深圳 外呼系統會封嗎 實體店地圖標注怎么標

概述

為什么使用集合運算:

  在集合運算中比聯接查詢和EXISTS/NOT EXISTS更方便。

并集運算(UNION)

并集:兩個集合的并集是一個包含集合A和B中所有元素的集合。

在T-SQL中。UNION集合運算可以將兩個輸入查詢的結果組合成一個結果集。需要注意的是:如果一個行在任何一個輸入集合中出現,它也會在UNION運算的結果中出現。T-SQL支持以下兩種選項:

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

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

(2)UNION:會刪除重復行

-- union
select country, region from hr.Employees
union
select country, region from sales.Customers;

交集運算(INTERSECT)

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

在T-SQL中,INTERSECT集合運算對兩個輸入查詢的結果取其交集,只返回在兩個查詢結果集中都出現的行。

  INTERSECT集合運算在邏輯上會首先刪除兩個輸入集中的重復行,然后返回只在兩個集合中中都出現的行。換句話說:如果一個行在兩個輸入集中都至少出現一次,那么交集返回的結果中將包含這一行。

  例如,下面返回既是雇員地址,又是客戶地址的不同地址:

-- intersect
select country, region, city from hr.Employees
intersect
select country, region, city from sales.Customers;

這里需要說的是,集合運算對行進行比較時,認為兩個NULL值相等,所以就返回該行記錄。

差集運算(EXCEPT)

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

 在T-SQL中,集合之差使用EXCEPT集合運算實現的。它對兩個輸入查詢的結果集進行操作,反會出現在第一個結果集中,但不出現在第二個結果集中的所有行。

  EXCEPT結合運算在邏輯上首先刪除兩個輸入集中的重復行,然后返回只在第一個集合中出現,在第二個結果集中不出現的所有行。換句話說:一個行能夠被返回,僅當這個行在第一個輸入的集合中至少出現過一次,而且在第二個集合中一次也沒出現過。

  此外,相比UNION和INTERSECT,兩個輸入集合的順序是會影響到最后返回結果的。

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

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

集合運算優先級

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

  換句話說:首先會計算INTERSECT,然后按照從左至右的出現順序依次處理優先級相同的運算。

-- 集合運算的優先級
select country, region, city from Production.Suppliers
except
select country, region, city from hr.Employees
intersect
select country, region, city from sales.Customers;

上面這段SQL代碼,因為INTERSECT優先級比EXCEPT高,所以首先進行INTERSECT交集運算。因此,這個查詢的含義是:返回沒有出現在員工地址和客戶地址交集中的供應商地址。

集合運算的優先級

1.INTERSECT>UNION=EXCEPT

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

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

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

使用表表達式避開不支持的邏輯查詢處理

集合運算查詢本身并不持之除ORDER BY意外的其他邏輯查詢處理階段,但可以通過表表達式來避開這一限制。

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

(1)例如,下面的查詢返回每個國家中不同的員工地址或客戶地址的數量:

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)例如,下面的查詢返回由員工地址為3或5的員工最近處理過的兩個訂單:、

select empid,orderid,orderdate 
from (select top (2) empid,orderid,orderdate 
 from sales.Orders
 where empid=3
 order by orderdate desc,orderid desc) 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;

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

您可能感興趣的文章:
  • SQL語句的并集UNION 交集JOIN(內連接,外連接)等介紹
  • MySQL實現差集(Minus)和交集(Intersect)測試報告
  • MySQL 查詢結果取交集的實現方法
  • SQLServer中求兩個字符串的交集
  • mysql-joins具體用法說明

標簽:廣東 濟寧 濟源 武威 安徽 臺州 汕頭 泰安

巨人網絡通訊聲明:本文標題《sql server 交集,差集的用法詳解》,本文關鍵詞  sql,server,交集,差集,的,用法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sql server 交集,差集的用法詳解》相關的同類信息!
  • 本頁收集關于sql server 交集,差集的用法詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 18女的下面流水视频免费欣赏| 国产在线精品拍揄自揄免费| 我好像出轨了小说| 强H被cao哭高H| 三D肉蒲武则天秘史| 日日av| 菠萝影院| 午夜男女爽爽影院A片免费失禁| 色综合久久88色综合天天看泰| 游泳池肉文| 双性生子产乳军阀1v1| 亚洲妇女毛茸茸| 久久疯狂做爰XX| 激情亚洲网| 亚洲精品色婷婷在线影院麻豆| 年轻的一代电影免费观看| 一女多男共妻被4P高H| 91丨国产丨白浆秘?3D| 国产美女流白浆的免费视| 色戒汤唯238分钟未删减版| 旗袍秘书撅屁股露丁字裤玩屁股眼| 青草视频在线观看迅雷下载| 女子达の茶道动漫无删减| 好男人好资源| 国产成人精品???水| 一人上面3人下| 亚洲天堂午夜| 97色伦人人| 狠狠亚洲| 泷泽萝拉无码AV精品无删减| 开荤粗肉HHHH| 我家娘子不对劲无错版下载| 男女多p混交群体交乱A片小说| 爱草免费视频| 黄色a级片免费观看| 92看片婬黄大片欧美高清| 美女被免费网站视频九色| 国产日批视频| bl放荡受np纯肉合集白雪王子| mt02cc蜜桃视频| 色94色欧美sute亚洲线路一久|