13

次のような列で EXISTS (または同様のもの) を使用できるかどうか疑問に思っています。

SELECT Column1,
       Column2,
       EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag
FROM Table1

Count() で同様のことができることを知っています

SELECT Column1,
       Column2,
       (SELECT Count(*) FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag
FROM Table1

ただし、Table2 が大きい場合、これはあまり効率的ではない可能性があります。

4

2 に答える 2

20

これを試して

SELECT Column1,
       Column2,
       CASE WHEN EXISTS (SELECT 1 FROM Table2 T2 
       WHERE T2.Column = T1.Column) then 1 ELSE 0 END AS IsFlag
FROM Table1
于 2012-10-09T19:50:33.303 に答える
8
CASE 
    WHEN 
        EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column) 
    THEN 1 
    ELSE 0 
END AS IsFlag
于 2012-10-09T19:50:55.453 に答える