2012-10-09 51 views
11

Me pregunto si puedo usar existe (o algo similar) en la columna de la siguiente manera:uso de T-SQL existe como Columna

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

Sé que puedo hacer algo similar con Count()

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

Pero eso podría no ser muy eficiente cuando es grande la Tabla2

Respuesta

15

probar este

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 
+0

Falta un T1 después de la Tabla1. De lo contrario, la expresión = dentro de EXISTS tiene un error de sintaxis. – Christoph

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