2

スキーマ:

CREATE TABLE #exclGeoKeys (xKEY INT);
INSERT INTO #exclGeoKeys
    values
    (1),
    (2);

CREATE TABLE #y (NAME CHAR(1),xKEY INT);
INSERT INTO #y
    values
    ('A',1),
    ('C',2),
    ('D',NULL),
    ('E',3),
    ('F',4);

以下を短くして、同じ結果が得られ、セクションが不要になるようにすることはできますOR xKEY IS NULLか?

SELECT *
FROM   #y
WHERE  xKEY NOT IN 
                 (
                 SELECT * 
                 FROM #exclGeoKeys
                 ) 
       OR 
       xKEY IS NULL;
4

4 に答える 4

1

非現実的な価値

SELECT *
FROM   #y
WHERE  coalesce(xKEY,-1) NOT IN 
                 (
                 SELECT *
                 FROM #exclGeoKeys
                 ) 
于 2013-04-27T20:10:40.567 に答える
1

左結合を使用しようとしましたか?

SELECT #y.*
FROM   #y
LEFT JOIN #exclGeoKeys excl on excl.xKEY = #y.xKEY
WHERE excl.xKEY IS NULL
于 2013-04-27T20:17:52.693 に答える