छानने के बाहर पंक्तियों के साथ नल मान केवल जब एक मूल्य पहले से ही एक पंक्ति के साथ एक गैर शून्य मान

0

सवाल

मैं कर रहा हूँ का उपयोग कर SQL सर्वर प्रबंधन स्टूडियो 17.

मैं एक का चयन करें बयान के साथ एक समूह द्वारा देता है कि निम्न मान. यह सिर्फ एक सबसेट के 170k पंक्तियों.

SELECT        child, parent
FROM            (SELECT child, parent
                          FROM table
                          GROUP BY child, parent) AS derivedtbl_1
ORDER BY child
बच्चे माता-पिता
201 अशक्त
201 991
201 1020
202 अशक्त
203 अशक्त

मैं संघर्ष कर रहा हूँ खोजने के लिए एक का चयन करें कथन है कि बाहर फिल्टर पहली पंक्ति. अगर एक बच्चे को पहले से ही एक माता पिता की है कि रिक्त नहीं है तो मैं यह चाहते हैं बाहर फिल्टर करने के लिए पंक्ति के साथ नल मान ।

मैं करने की कोशिश की है इसे हल करने के लिए एक मामले के साथ जब गिनती बयान. उदाहरण के लिए यदि मान मौजूद है और अधिक से अधिक एक बार बच्चे में स्तंभ तो मैं यह चाहते हैं बाहर फिल्टर करने के लिए पंक्ति में है, जहां माता-पिता अशक्त है, लेकिन सभी के कोड अब तक रिटर्न त्रुटियों.

बच्चे माता-पिता
201 991
201 1020
202 अशक्त
203 अशक्त
sql sql-server
2021-11-23 09:48:35
2

सबसे अच्छा जवाब

2

आप का उपयोग कर सकते मौजूद है यहाँ तर्क:

SELECT child, parent
FROM yourTable t1
WHERE
    Parent IS NOT NULL OR
    (Parent IS NULL AND
     NOT EXISTS (SELECT 1 FROM yourTable t2
                 WHERE t2.Child = t1.Child AND
                       t2.Parent IS NOT NULL));

screen capture from demo link below

डेमो

2021-11-23 09:55:57
0

आप उपयोग कर सकते हैं एक खिड़की के लिए कार्य । यह हो सकता है तेज या धीमी की तुलना का उपयोग कर एक EXISTS स्व-शामिल हों, आप की जरूरत का परीक्षण करने के लिए

SELECT
  child,
  parent
FROM (
    SELECT
      child,
      parent,
      AnyParent = MAX(parent) OVER (PARTITION BY child)
    FROM [table]
    GROUP BY child, parent
) AS derivedtbl_1
WHERE AnyParent IS NOT NULL;
ORDER BY child
2021-11-23 17:28:56

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में