इस परीक्षण डेटा को देखते हुए ...
SQL> select *
2 from your_table
3 /
NAME M1 M2 M3 M4
---- ---------- ---------- ---------- ----------
A 1 2 3 4
B 6 3 4 5
C 1 5 2 1
SQL>
... एक सीधा GREATEST() कॉल वांछित परिणाम देगा:
SQL> select name
2 , greatest(m1, m2, m3, m4) as the greatest_m
3 from your_table
4 /
NAME THE_GREATEST_M
---- --------------
A 4
B 6
C 5
SQL>
ध्यान दें कि greatest()
यदि कोई तर्क शून्य है तो NULL वापस आ जाएगा। अगर यह एक समस्या है तो nvl()
. का उपयोग करें एक डिफ़ॉल्ट मान प्रदान करने के लिए जो परिणाम को विकृत नहीं करेगा। उदाहरण के लिए, यदि कोई मान ऋणात्मक नहीं हो सकता....
SQL> select name
2 , greatest(nvl(m1,0), nvl(m2,0), nvl(m3,0), nvl(m4,0)) as the greatest_m
3 from your_table
4 /
NAME THE_GREATEST_M
---- --------------
A 4
B 6
C 5
SQL>