Подтвердить что ты не робот

T-SQL использует EXISTS в качестве столбца

Мне интересно, могу ли я использовать 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 большой

4b9b3361

Ответ 1

Попробуйте это

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

Ответ 2

CASE 
    WHEN 
        EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column) 
    THEN 1 
    ELSE 0 
END AS IsFlag