Nie, w Oracle
nie ma SELECT
bez FROM
.
Korzystanie z dual
tabela jest dobrą praktyką.
dual
to tabela w pamięci. Jeśli nie wybierzesz DUMMY
z niego używa specjalnej ścieżki dostępu (FAST DUAL
), który nie wymaga I/O
.
Dawno, dawno temu, dual
miał dwa rekordy (stąd nazwa) i miał służyć jako fikcyjny zestaw rekordów do powielania dołączanych rekordów.
Teraz ma tylko jeden rekord, ale nadal możesz wygenerować z niego dowolną liczbę wierszy:
SELECT level
FROM dual
CONNECT BY
level <= 100
MySQL
obsługuje również dual
(jak również składnia fromless).