2010-07-30 14 views
29

आप एक SELECT स्टेटमेंट कैसे लिखते हैं जो केवल पंक्तियों को लौटाता है जहां एक निश्चित कॉलम का मान शून्य है?पंक्तियों का चयन करें जहां कॉलम शून्य है

SELECT COLUMN1, COLUMN2 FROM MY_TABLE WHERE COLUMN1 = 'Value' OR COLUMN1 IS NULL 

:

+6

अपने प्रश्न थोड़ा स्पष्ट करने के लिए कृपया, यह निर्धारित करने के लिए आप क्या कर रहे हैं लगभग असंभव है यहाँ पूछना .. – Rob

+1

आपके प्रश्न में बहुत अपर्याप्त जानकारी। आपको हमें अपनी डेटाबेस टेबल और कॉलम दिखाना होगा और इसे स्पष्ट करना होगा कि आप वास्तव में क्या हासिल करना चाहते हैं। –

उत्तर

47

आप की तरह कुछ मतलब है?

SELECT * FROM customers WHERE first_name IS NULL 

एमएस एसक्यूएल सर्वर, IsNull पर() फ़ंक्शन:

8

मुझे यकीन है कि अगर यह आपके सवाल का जवाब है, लेकिन शून्य निर्माण, आप परीक्षण कर सकते हैं कि क्या किसी भी अदिश अभिव्यक्ति शून्य है का उपयोग करते हुए नहीं कर रहा हूँ पहला तर्क देता है यदि यह पूर्ण नहीं है, अन्यथा यह दूसरा लौटाता है। आप प्रभावी रूप से इस का उपयोग सुनिश्चित करें कि एक प्रश्न हमेशा उदाहरण के शून्य के बजाय एक मूल्य, .:

SELECT ISNULL(column1, 'No value found') FROM mytable WHERE column2 = 23 

अन्य DBMSes समान कार्यक्षमता उपलब्ध नहीं है पैदावार बनाने के लिए कर सकते हैं।

यदि आप जानना चाहते हैं कि कॉलम शून्य हो सकता है (यानी, वास्तविक डेटा के लिए पूछताछ किए बिना, आपको जानकारी_स्किमा में देखना चाहिए।

+1

+1 मैं ISNULL() फ़ंक्शन के बारे में कभी नहीं जानता था। – WDuffy

2

यदि स्तंभ अशक्त

select * from foo where bar is null 

है आप कुछ मूल्य कुछ के बराबर नहीं के लिए जाँच करना चाहते हैं जानना चाहता हूँ और स्तंभ भी शून्य मान होता है कि आप इसे

में शून्य वाले कॉलम नहीं मिलेगा

काम नहीं करता:

:

select * from foo where bar <> 'value' 

काम करता है 0

Oracle (अन्य डीबीएमएस पर पता नहीं है) अगर मैं सही ढंग से तो tdammers से जवाब पढ़ें एमएस एसक्यूएल सर्वर में यह है कि

select * from foo where ISNULL(bar,'n/a') <> 'value' 

की तरह है कि कुछ लोग इस

select * from foo where NVL(bar,'n/a') <> 'value' 

प्रयोग मेरी राय में यह एक हैक का थोड़ा सा है और पल 'वैल्यू' एक वैरिएबल बन जाता है यदि कथन में 'n/a' होता है तो कथन बग्गी बन जाता है।

0

कुछ कारणों के लिए कुछ स्तंभ डेटा प्रकार मैं सभी कर्मचारियों ने अपने अंग्रेजी पूरा नाम याद आ रही है प्राप्त करने के लिए आवश्यकता थी के साथ काम नहीं कर सकते हैं शून्य है, मैं का उपयोग किया है:

** emp_id का चयन करें, Full_Name_Ar , Full_Name_En कर्मचारियों से जहां Full_Name_En = '' या Full_Name_En अशक्त ** है

+0

यह केवल उन रिकॉर्ड्स की खोज कर रहा है जहां Full_Name_En एक स्थान है ... इस प्रश्न में बहुत उपयोगी नहीं है NULL – sonyisda1

0
select Column from Table where Column is null; 
+0

से आपका स्वागत है SO में आपका स्वागत है। कोड-केवल उत्तर उत्तर के रूप में उपयोगी नहीं हैं जिनके पास काम करने वाले कोड और सहायक स्पष्टीकरण हैं। इस मामले में, 5 साल के लिए यह जवाब समझा जा सकता है। –

0

चयन * TableName से जहां columnName रिक्त है

संबंधित मुद्दे