我與SQL Server和SQL CE 我試圖做一個簡單的子查詢如何在sql ce數據庫查詢中使用「where not in」?
Select * From Item_Lots where Distribution_Code NOT IN
(select Distribution_Code from Stock_Serials)
工作,但它不會對SQL CE工作!
任何解決此問題的方法?
我與SQL Server和SQL CE 我試圖做一個簡單的子查詢如何在sql ce數據庫查詢中使用「where not in」?
Select * From Item_Lots where Distribution_Code NOT IN
(select Distribution_Code from Stock_Serials)
工作,但它不會對SQL CE工作!
任何解決此問題的方法?
我不知道這是否適用於SQL CE,但它是替代NOT IN SQL的標準方法。
SELECT Item_Lots.*
FROM Item_Lots
LEFT OUTER JOIN Stock_Serials
ON Item_Lots.Distribution_Code = Stock_Serials.Distribution_Code
WHERE Stock_Serials.Distribution_Code IS NULL
你也可以試試這個:
SELECT *
FROM Item_Lots
WHERE NOT EXISTS
(
SELECT *
FROM Stock_Serials
WHERE Stock_Serials.Distribution_Code = Item_Lots.Distribution_Code
)
參考:Should I use NOT IN, OUTER APPLY, LEFT OUTER JOIN, EXCEPT, or NOT EXISTS?
兩者都像魅力!謝謝Scorpi0 – Tarreq 2013-04-30 10:34:13
我知道這是有點晚了,但Distribution_Code可空?
我遇到了同樣的問題,因爲=無法在Sql Compact中進行空比較。從內部查詢中篩選出空值解決了這個問題
SELECT * FROM Item_Lots WHERE Distribution_Code NOT IN
(SELECT Distribution_Code FROM Stock_Serials WHERE Distribution_Code IS NOT NULL GROUP BY Distribution_Code)
什麼不起作用?你有錯誤信息嗎? – 2013-04-30 10:26:22