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

Как клаузата „in“ работи в oracle

Правилно (но имайте предвид, че IN е оператор, а не клауза и работи по този начин в SQL като цяло, не само за Oracle).

where 1 not in (null,1)

е еквивалентен на:

where 1 != null and 1 != 1

което наистина трябва да бъде записано като:

WHERE 1 NOT IN (NULL, 1)

и

WHERE 1 <> NULL AND 1 <> 1

което е същото като:

WHERE (1 <> NULL) AND (1 <> 1)

което се оценява на:

WHERE UNKNOWN AND FALSE

и по-нататък като:

WHERE FALSE

Така че правилно не връща редове.

Забележете, че ако сте имали WHERE 1 NOT IN (NULL, 2) , ще се оцени като WHERE UNKNOWN (оставено като упражнение) и също няма да бъдат върнати редове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dbms_output.put_line

  2. Най-добрият начин да съкратите UTF8 низ въз основа на дължината на байта

  3. Как да създам таблица на Oracle с вложени таблици от типове обекти?

  4. как да възстановите резервна база данни от липсващ архивен дневник

  5. Поддържани модели на формат за функциите за дата ROUND() и TRUNC() в Oracle