Normálně jsou všechny výběry ve tvaru SELECT [columns, scalar computations on columns, grouped computations on columns, or scalar computations] FROM [table or joins of tables, etc]
Protože to umožňuje jednoduché skalární výpočty, můžeme udělat něco jako SELECT 1 + 1 FROM SomeTable a vrátí sadu záznamů s hodnotou 2 pro každý řádek v tabulce SomeTable .
Nyní, pokud bychom se nestarali o žádnou tabulku, ale jen chtěli provést naše skalární výpočty, mohli bychom chtít udělat něco jako SELECT 1 + 1 . Standard to nepovoluje, ale je to užitečné a většina databází to umožňuje (Oracle ne, pokud se to nedávno nezměnilo, alespoň tomu tak nebylo).
Proto se s takovými holými SELECTy zachází, jako by měly klauzuli from, která specifikovala tabulku s jedním řádkem a bez sloupce (samozřejmě nemožné, ale dělá to trik). Proto SELECT 1 + 1 se změní na SELECT 1 + 1 FROM ImaginaryTableWithOneRow který vrátí jeden řádek s jedním sloupcem s hodnotou 2 .
Většinou o tom nepřemýšlíme, jen si zvykneme na to, že holé SELECTy dávají výsledky a ani nás nenapadne, že musí být vybrána nějaká jednořádková věc, která vrátí jeden řádek.
Přitom SELECT COUNT(*) udělali jste ekvivalent SELECT COUNT(*) FROM ImaginaryTableWithOneRow což samozřejmě vrátí 1.