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

Оператор ALL VS Any при празна заявка

Разгледайте примера на EMP таблица в тази връзка.

Конкретно тази заявка -

SELECT e1.empno, e1.sal
FROM   emp e1
WHERE  e1.sal > ANY (SELECT e2.sal
                     FROM   emp e2
                     WHERE  e2.deptno = 20);

В случай на НЯКАКВО, въпросът, който задавате е „Моята заплата по-голяма ли е от тази на всеки в отдел 20 (поне 1 човек)“. Това означава, че се надявате на поне един човек има по-ниска заплата от вас. Когато няма редове, това връща FALSE понеже няма никой с по-малка заплата от теб, надявахте се поне на един.

В случай на ВСИЧКИ, очевидният въпрос, който бихте задали, е "Моята заплата по-голяма ли е от всички?". Перифразирайки това като „Няма ли някой, който да има по-голяма заплата от мен?“ Когато няма върнати редове, вашият отговор е TRUE , защото „наистина няма никой, чиято заплата да е по-голяма от мен.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Колко лошо е игнорирането на Oracle DUP_VAL_ON_INDEX изключение?

  2. Как да разширя десетичните знаци на число до минимум в Oracle PLSQL?

  3. Извличане на записи от свързан списък в релационна база данни

  4. Защо този шаблон за хибернация bulkUpdate не работи

  5. Достъпът до мрежата е отказан от списъка за контрол на достъпа (ACL) в Oracle Database 11g