通常、すべての選択はSELECT [columns, scalar computations on columns, grouped computations on columns, or scalar computations] FROM [table or joins of tables, etc]
の形式になります。
これによりプレーンなスカラー計算が可能になるため、SELECT 1 + 1 FROM SomeTable
のようなことができます。 そして、テーブルSomeTable
のすべての行に対して値2のレコードセットを返します。 。
ここで、テーブルを気にせず、スカラー計算を実行したいだけの場合は、SELECT 1 + 1
のような操作を実行することをお勧めします。 。これは標準では許可されていませんが、便利であり、ほとんどのデータベースで許可されています(Oracleは、最近変更されない限り、少なくとも以前は許可されていませんでした)。
したがって、このような裸のSELECTは、1行で列のないテーブルを指定するfrom句があるかのように扱われます(もちろん不可能ですが、それでうまくいきます)。したがって、SELECT 1 + 1
SELECT 1 + 1 FROM ImaginaryTableWithOneRow
になります これは、値が2
の単一の列を持つ単一の行を返します 。
ほとんどの場合、これについては考えていません。裸のSELECTで結果が得られるという事実に慣れているだけで、1行を返すために1行のものを選択する必要があるという事実についても考えていません。
SELECT COUNT(*)
を実行する場合 SELECT COUNT(*) FROM ImaginaryTableWithOneRow
と同等の処理を行いました もちろん1を返します。