sql >> Databasteknik >  >> RDS >> Oracle

Hur fungerar Oracle SELECT FROM dual med flera fält

Koden du stötte på är avsedd att uppdatera en enskild rad, eller skapa den om den inte finns.

DUAL är en speciell systemtabell som bara innehåller en rad. Att välja från DUAL är en lösning för Oracles oförmåga att göra helt enkelt:

select sysdate;

Observera att det inte behöver vara dual , det kan vara valfri enradstabell eller till och med en fråga som returnerar en rad.

select sysdate
  from dual;

motsvarar:

select sysdate
  from my_one_row_table;

och

select sysdate
  from my_table
 where my_primary_key = 1;

Sedan version 10g har dual tabellen har en speciell åtkomstväg som visas i exekveringsplanen som "snabb dual", vilket resulterar i 0 konsekventa gets, vilket inte är möjligt att uppnå på egen hand med andra tabeller.



  1. SQL Server 2016:sys.dm_exec_function_stats

  2. MySQL-utlösare för att ställa in kolumn till max + 1 fungerar inte

  3. Hur definierar man nollhantering i Spring Data JPA-sorter?

  4. Jämför tillfälliga tabeller för PostgreSQL och Oracle GTT