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

Mệnh đề CASE WHEN trong mệnh đề WHERE không thành công với lỗi thiếu từ khóa

Bạn không thể sử dụng CASE biểu thức như thế dưới dạng THEN mệnh đề mong đợi một biểu thức duy nhất và không phải là một so sánh. Thay vào đó bạn muốn:

SELECT DISTINCT
       LOGINID
FROM   EMPLOYEES
WHERE  EmployeeCode NOT IN ('L35', 'L36')
AND    (  CREATE_DT >= DATE '2020-05-07'
       OR XML_VAL NOT LIKE '%<Product>%' )

Nếu bạn thực sự muốn sử dụng CASE thì biểu thức này sẽ hợp lệ về mặt cú pháp:

CASE
WHEN CREATE_DT < TO_DATE('07-MAY-20', 'DD-MON-RR', 'NLS_DATE_LANGUAGE=American')
THEN XML_VAL
ELSE NULL
END NOT LIKE '%<Product>%'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra ràng buộc Oracle SQL giữa 2 bảng

  2. Nhiều THEN vào một câu lệnh CASE duy nhất?

  3. Cách tìm ra số chữ số của một số tiên tri

  4. Không đủ đặc quyền khi tạo bảng trong Oracle SQL Developer

  5. Giá trị trả về của oci_parse