sql >> Database teknologi >  >> RDS >> Oracle

CASE WHEN in WHERE-klausulen fejler med en fejl, der mangler nøgleord

Du kan ikke bruge en CASE udtryk som det som THEN klausul forventer et enkelt udtryk og ikke en sammenligning. I stedet ønsker du:

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

Hvis du virkelig ønsker at bruge en CASE udtryk, så ville dette være syntaktisk gyldigt:

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. Hvordan kan jeg gå gennem alle filerne i en mappe ved hjælp af TSQL?

  2. PostgreSQL svarende til Oracle bulk collect

  3. TCL-kommandoer i SQL

  4. Undtagelse under forsøg på at køre java-program fra maven