1

SQL Server と SQL CE を使用しています。単純なサブクエリを作成しようとしています。

Select * From Item_Lots where Distribution_Code NOT IN
(select Distribution_Code from Stock_Serials)

、しかし、SQL CE では動作しません!!

これに対する回避策はありますか?

4

2 に答える 2

0

これが 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 
)

参考:NOT IN、OUTER APPLY、LEFT OUTER JOIN、EXCEPT、NOT EXISTSのどれを使うべき?

于 2013-04-30T10:23:31.617 に答える
0

これは少し遅れていることはわかっていますが、Distribution_Code は null 可能ですか?

= は Sql Compact で null 比較を実行できないため、同じ問題に遭遇しました。内部クエリから null 値を除外すると、これが解決されました

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)
于 2014-07-10T18:41:04.410 に答える