sql >> Databasteknik >  >> RDS >> Oracle

CASE WHEN in WHERE-satsen misslyckas med ett fel som saknar nyckelord

Du kan inte använda en CASE uttryck som det som THEN sats förväntar sig ett enda uttryck och inte en jämförelse. Istället vill 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>%' )

Om du verkligen vill använda en CASE uttryck så skulle detta vara syntaktiskt giltigt:

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. Hur man nedgraderar/har en tidigare version av Postgres DB i Postgres.app

  2. Aggregerar de senaste sammanslagna posterna per vecka

  3. Rad med senaste värde per kund och månad

  4. Codeigniters insert_batch() med tusentals inlägg saknar poster