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

Xử lý Null trong hàm Greatest trong Oracle

Câu hỏi của bạn đặc biệt liên quan đến hai cột, nhưng tôi đã gặp phải những tình huống mà tôi cần GREATEST / LEAST trong số hơn hai cột. Trong những trường hợp đó, bạn có thể sử dụng COALESCE và mở rộng giải pháp lên bao nhiêu cột bạn muốn.

Đây là một ví dụ với ba cột a , bc :

GREATEST(
    COALESCE(a, b, c),
    COALESCE(b, c, a),
    COALESCE(c, a, b)
)

Lưu ý rằng thứ tự cột của COALESCE thay đổi để mỗi cột đầu vào là phần tử đầu tiên COALESCE ít nhất một lần. Lần duy nhất điều này sẽ trả về NULL là khi tất cả các cột đầu vào là NULL.

Trong "giải pháp chung", số COALESCE các câu lệnh sẽ bằng số cột đầu vào:

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),
    ...
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn vào từ CTE

  2. Sự khác biệt giữa SQL Server và Oracle 'Người dùng'

  3. Làm cách nào để thay đổi văn bản nhãn của nút nhấn và thêm chức năng mới trong thời gian chạy? Biểu mẫu Oracle

  4. Làm cách nào để lấy tất cả thông tin về một bảng trong Oracle?

  5. thông báo lỗi sqldeveloper:Bộ điều hợp mạng không thể thiết lập lỗi kết nối