sql >> Database >  >> RDS >> Oracle

CASE WHEN in WHERE-component faalt met een fout die zoekwoord mist

U kunt geen CASE . gebruiken uitdrukking zoals de THEN clausule verwacht een enkele uitdrukking en geen vergelijking. In plaats daarvan wil je:

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

Als je echt een CASE . wilt gebruiken uitdrukking, dan zou dit syntactisch geldig zijn:

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. Tijd tussen twee gebeurtenissen

  2. SQL-query met Row_Number, order by en where-clausule

  3. Ongedefinieerde variabele:POST - PHP en MySQL

  4. MYSQL zoeken door cellen met door komma's gescheiden waarden