Với dữ liệu thử nghiệm này ...
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>
... một lệnh gọi GREATEST () đơn giản sẽ cho kết quả mong muốn:
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>
Lưu ý rằng greatest()
sẽ trả về NULL nếu bất kỳ đối số nào là rỗng. Nếu đây là sự cố thì hãy sử dụng nvl()
để cung cấp một giá trị mặc định sẽ không làm sai lệch kết quả. Ví dụ:nếu không có giá trị nào có thể là số âm ....
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>