sql >> Base de Datos >  >> RDS >> Oracle

CASE WHEN en la cláusula WHERE está fallando con un error que falta la palabra clave

No puedes usar un CASE expresión como esa como THEN cláusula espera una sola expresión y no una comparación. En su lugar, desea:

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

Si realmente quieres usar un CASE expresión entonces esto sería sintácticamente válido:

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>%'