आपको IS NOT NULL
. का उपयोग करना चाहिए . (तुलना ऑपरेटर =
और <>
दोनों UNKNOWN
give देते हैं NULL
. के साथ अभिव्यक्ति के दोनों ओर।)
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
केवल पूर्णता के लिए मैं उल्लेख करूंगा कि MySQL में आप शून्य सुरक्षित समानता ऑपरेटर लेकिन यह मानक SQL नहीं है।
SELECT *
FROM table
WHERE NOT (YourColumn <=> NULL);
टिप्पणियों को प्रतिबिंबित करने के लिए संपादित किया गया। ऐसा लगता है कि आपकी तालिका पहले सामान्य रूप में नहीं हो सकती है, ऐसे में संरचना को बदलने से आपका काम आसान हो सकता है। हालांकि इसे करने के कुछ अन्य तरीके...
SELECT val1 AS val
FROM your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2
FROM your_table
WHERE val2 IS NOT NULL
/*And so on for all your columns*/
उपरोक्त का नुकसान यह है कि यह प्रत्येक कॉलम के लिए तालिका को कई बार स्कैन करता है। यह संभवतः नीचे से बचा जा सकता है लेकिन मैंने MySQL में इसका परीक्षण नहीं किया है।
SELECT CASE idx
WHEN 1 THEN val1
WHEN 2 THEN val2
END AS val
FROM your_table
/*CROSS JOIN*/
JOIN (SELECT 1 AS idx
UNION ALL
SELECT 2) t
HAVING val IS NOT NULL /*Can reference alias in Having in MySQL*/