【SQL】IN,NOT IN,EXISTS,NOT EXISTS的用法和差别
IN, NOT IN : 後面接的子查詢只能接單一欄位的值 ex: SELECT pub_id FROM titles
EXISTS, NOT EXISTS : 後面接的子查詢可以單一欄位的值,也可以完整的語句 ex: SELECT * FROM titles
IN ,EXISTS : 存在於 ; NOT IN , NOT EXISTS : 不存在於
Ex:
SELECT ProductID, ProductName FROM Northwind.dbo.Products WHERE CategoryID = 1 OR CategoryID = 4 OR CategoryID = 5
SELECT ProductID, ProductName FROM Northwind.dbo.Products WHERE CategoryID IN (1, 4, 5)
以上兩個是相同結果
SELECT DISTINCT pub_name FROM publishers WHERE EXISTS (SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type ='business')
SELECT distinct pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titles WHERE type = 'business')
以上兩個是相同結果
留言
張貼留言