2012-10-09 13 views
11

मैं सोच रहा हूँ कि क्या मैं उपयोग कर सकते हैं मौजूद है (या कुछ इसी तरह) कॉलम में इस तरह के रूप में मौजूद है:T-SQL उपयोग स्तंभ

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

मैं जानता हूँ कि मैं काउंट()

के साथ इसी तरह कुछ कर सकते हैं
SELECT Column1, 
     Column2, 
     (SELECT Count(*) FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag 
FROM Table1 

लेकिन वह बहुत ही कुशल नहीं हो सकता है जब तालिका 2 बड़ी है

उत्तर

15

इस

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

तालिका 1 के बाद एक टी 1 गायब है। अन्यथा, EXISTS के अंदर = अभिव्यक्ति में एक वाक्यविन्यास त्रुटि है। – Christoph

6
CASE 
    WHEN 
     EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column) 
    THEN 1 
    ELSE 0 
END AS IsFlag 
संबंधित मुद्दे