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

Ред за оценка на клаузата на Oracle SQL

Списъкът за избор не винаги може да бъде оценен последен, тъй като ORDER BY може да използва псевдоними, които са дефинирани в списъка за избор, така че те трябва да бъдат изпълнени след това. Например:

SELECT foo+bar foobar FROM table1 ORDER BY foobar

Бих казал, че като цяло редът на изпълнение може да бъде нещо подобно:

  • ОТ
  • КЪДЕ
  • ГРУПИРА ПО
  • ИЗБЕРЕТЕ
  • ИМАНЕ
  • ПОРЪЧАЙТЕ ОТ

Клаузите GROUP BY и WHERE могат да бъдат разменени без промяна на резултата, както и HAVING и ORDER BY.

В действителност нещата са по-сложни, защото базата данни може да пренареди изпълнението според различни планове за изпълнение. Докато резултатът остава същият, няма значение в какъв ред се изпълнява.

Имайте предвид също, че ако е избран индекс за клаузата ORDER BY, редовете може вече да са в правилния ред, когато се четат от диск. В този случай клаузата ORDER BY изобщо не се изпълнява.



  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

  2. Oracle Text няма да работи с NVARCHAR2. Какво друго може да не е налично?

  3. 7 начина да проверите вашата версия на Oracle

  4. Проверете ограничение, извикване на функция Oracle SQL разработчик

  5. Архиваторът прекъсна поради СЪВМЕСТИМИЯ ORA-16484