iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
自我挑戰組

C# 和 SQL 探索之路系列 第 24

Day 24: SQL 語法: UNION、NOT EXISTS、CASE

  • 分享至 

  • xImage
  •  

今天介紹 UNIONUNION ALL 語法的作用,NOT EXISTSCASE 語法的使用時機。

UNION 和 UNION ALL

  • UNION: 可以將上下兩句 SQL SELECT 語法的查詢結果合併起來,適合用在不同資料表,但有相同性質資料的時候。使用 SQL SELECT 查詢的欄位數量、類型需要相同,否則會發生錯誤。如下方的範例,分別從 Person 資料表和 Member 資料表取得 ID 和 Name 欄位:
SELECT ID, Name FROM Person
UNION
SELECT ID, Name FROM Member
  • UNION ALL: 與 UNION 的作用類似,上下兩句查詢結果合併在一起,差異在於 UNION ALL 會列出包含重複資料的所有結果,而 UNION 僅列出不重複的所有結果。
  • 參考資料:SQL UNION ALL - 1Keydata SQL 語法教學

NOT EXISTS

  • 可以透過子查詢,將不存在於子查詢中的資料列出來。適合用來檢查哪些資料沒有重複。以下會列出在 Person 內,但不在 Member 資料表內的紀錄:
SELECT * FROM Person
WHERE NOT EXISTS (
   SELECT ID FROM Member WHERE Person.ID=Member.ID)

Case

  • 類似程式語言中 if 的寫法:
  1. CASE 開頭
  2. WHEN: 後方接條件
  3. THEN: 數值或其它 SQL 語法
  4. ELSE: 預設情況下的數值或其它 SQL 語法
  5. END 結尾
    語法範例如下:
SELECT Name, CASE
WHEN IsMember=0, THEN 'Not Member'
WHEN IsMember=1, THEN 'Member'
ELSE 'Unknown'
END AS IsMember
FROM Person

上一篇
Day 23: SQL 暫存資料表與資料表連接
下一篇
Day 25: SQL 與 C# 的四捨五入
系列文
C# 和 SQL 探索之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言