FROM句が無いSELECT文について(SQL)

[English]

これは私が独学及び職場で学んだことと経験したことをまとめたノートです。

以前、証券決済インフラシステムのSQLスクリプトの単体テストに携わったことがあります。まだまだ経験浅いエンジニアではありますが、ここで現場での経験を共有したいと思います。よろしければ最後まで読んでください。そしてコメントの方もお願いいたします。

今回は、PostgreSQLのSELECT文について悩んだことを共有したいと思います。下記の通り通常のSELECT文はFROM句と一緒にセットになって使用するという認識でおりました。

SELECT *
FROM sample_table;

しかし、現場にて以下のようなFROM句がないSELECT文に遭遇しました。

SELECT 'abc'::text AS sample_column;

そして、これを実行した結果が次の通りです。

sample_column
----------
abc

結果、FROM句が無いにもかかわらず実行に成功しています。

この疑問を解決するためブラウザを開き”FROM句が無いSELECT文”をキーワードとして検索してみました。しかし、検索結果に回答が見つかりませんでした。

ここで職場の先輩を尋ねることにしました。先輩は”SELECT文にFROM句が無いのではなく省略されている場合もあるよ”とヒントを貰いました。

そこで、あらためてブラウザを開き”FROM句が省略されているSELECT文”と検索して回答が見つかりました。

SELECT文のFROM句の省略

データベースのテーブルを参照する必要がない場合は、SELECT文にFROM句を省略しても良いとことが分かりました。例として以下のようにSELECTを電卓代わりに使う時です。

SELECT 1*2;

注意点として、SELECT文にFROM句が省略できるDBMSとそうでないのがあります。

読んでくれてありがとうございます。

One thought on “FROM句が無いSELECT文について(SQL)

Leave a comment