आपके प्रश्न में विशेष रूप से दो कॉलम शामिल हैं, लेकिन मैंने उन स्थितियों में भाग लिया है जहां मुझे GREATEST
. की आवश्यकता थी /LEAST
दो से अधिक कॉलम में। उन परिदृश्यों में आप COALESCE
. का उपयोग कर सकते हैं और समाधान को जितने चाहें उतने कॉलम तक विस्तृत करें।
यहां तीन कॉलम के साथ एक उदाहरण दिया गया है a
, b
, और c
:
GREATEST(
COALESCE(a, b, c),
COALESCE(b, c, a),
COALESCE(c, a, b)
)
ध्यान दें कि COALESCE
. का स्तंभ क्रम बदलता है ताकि प्रत्येक इनपुट कॉलम पहला तत्व हो COALESCE
कम से कम एक बार। यह केवल तभी वापस आएगा जब सभी इनपुट कॉलम न्यूल होंगे।
"सामान्य समाधान" में COALESCE
. की संख्या स्टेटमेंट इनपुट कॉलम की संख्या के बराबर होंगे:
GREATEST(
COALESCE(col1, col2, col3, col4, ....),
COALESCE(col2, col3, col4, ...., col1),
COALESCE(col3, col4, ...., col1, col2),
COALESCE(col4, ...., col1, col2, col3),
COALESCE(...., col1, col2, col3, col4),
...
)