Oracle
 sql >> база данни >  >> RDS >> Oracle

CASE WHEN в клаузата WHERE е неуспешна с грешка, липсваща ключова дума

Не можете да използвате CASE израз като този като THEN клаузата очаква един израз, а не сравнение. Вместо това искате:

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

Ако наистина искате да използвате CASE израз, тогава това ще бъде синтактично валидно:

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. Regex за премахване на думи от черния списък от изречение

  2. PL/SQL процедурата е завършена успешно, но не показва нищо

  3. Разбиране на псевдонима на Oracle – защо псевдонимът не се разпознава в заявка, освен ако не е обвит във втора заявка?

  4. премахнете конкретна дума от низ

  5. Oracle:защо не използва паралелно изпълнение?