Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle:chọn giá trị lớn nhất từ ​​các cột khác nhau của cùng một hàng

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>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục UTL_FILE.FOPEN () không chấp nhận đường dẫn cho thư mục?

  2. Các kiểu dữ liệu Oracle

  3. Tìm hiểu ký hiệu tiền tệ mà phiên của bạn sử dụng trong Oracle

  4. Làm thế nào để chỉnh sửa thủ tục đã lưu trong Oracle SQL Developer?

  5. Oracle CLOB không thể chèn quá 4000 ký tự?