यदि आप दो स्तंभों वाली एक पंक्ति प्राप्त करना चाहते हैं जब दो गैर-शून्य स्तंभ हों, और 1 यदि केवल एक हो, तो आपको गतिशील रूप से अपनी क्वेरी बनानी होगी।
यदि आप हमेशा 1 कॉलम रखना चाहते हैं जहां प्रत्येक पंक्ति में एक गैर-शून्य मान हो, तो आप इसे एक संघ के साथ कर सकते हैं।
SELECT a FROM tbl WHERE a IS NOT NULL AND id = ?
UNION
SELECT b FROM tbl WHERE b IS NOT NULL AND id = ?
UNION
SELECT c FROM tbl WHERE c IS NOT NULL AND id = ?
यदि आप यह जानना चाहते हैं कि कौन से कॉलम से मान आते हैं, तो आप ऐसा कुछ कर सकते हैं:
SELECT 'col a' AS ColName, a FROM tbl WHERE a IS NOT NULL AND id = ?
UNION
SELECT 'col b', b FROM tbl WHERE b IS NOT NULL AND id = ?
UNION
SELECT 'col c', c FROM tbl WHERE c IS NOT NULL AND id = ?
नोट:संघ डुप्लिकेट परिणाम भी निकालता है। यदि आप डुप्लीकेट रखना चाहते हैं, तो UNION ALL
use का उपयोग करें ।