Ответ 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
Мне интересно, могу ли я использовать 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 большой
Попробуйте это
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
CASE
WHEN
EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column)
THEN 1
ELSE 0
END AS IsFlag