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

Sử dụng COALESCE đúng cách trong mệnh đề WHERE

Chúng tôi có thể sử dụng ROW_NUMBER tại đây để chọn những gì bạn muốn với mức độ ưu tiên:

WITH cte AS (
    SELECT f.*, ROW_NUMBER() OVER (ORDER BY DECODE(ITEM_NO, 'A15354', 1,
                                                            'CURR_NOT_IN_TABLE', 2,
                                                            'GR0013', 3,
                                                            'GUOIUW', 4, 5)) rn
    FROM fruit f
    WHERE spoiled = 'Y'
)

SELECT ITEM_NAME
FROM cte
WHERE rn = 1;

Ý tưởng ở đây là chỉ định mức độ ưu tiên từ 1 đến 5 cho mỗi mục bị hư hỏng. Chúng tôi sử dụng ROW_NUMBER để tạo một chuỗi luôn bắt đầu với 1 là mức độ ưu tiên cao nhất hiện có.



  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 ngày UTC / GMT trong cơ sở dữ liệu Oracle với Java và Spring

  2. Cách lấy hai hàng mới nhất có giá trị nhất định theo ngày trong SQL

  3. ORA-22054 Lỗi dòng chảy

  4. cách lấy báo cáo thứ 3 để kết hợp dữ liệu khách hàng và đơn đặt hàng

  5. Oracle:Làm thế nào để UPSERT (cập nhật hoặc chèn vào bảng?)