名前が自動で付く式
足し算と定数の列だけを選ぶ SELECT の例です。列の参照でも関数でもない式に ?column? が付くことと、その旨の情報を確かめます。
入力
SQL
SELECT price * 2, 10 FROM items
結果
エラー 0 件・警告 0 件・情報 3 件
指摘(エラー・警告・情報)
- 情報 1 行目 1 番目「price * 2」には自動の名前 ?column? が付きます。AS で名前を付けると、結果を参照しやすくなります(SELECT 文書「SELECT List」)。
- 情報 1 行目 2 番目「10」には自動の名前 ?column? が付きます。AS で名前を付けると、結果を参照しやすくなります(SELECT 文書「SELECT List」)。
- 情報 全体 同名の出力列はありません。
| 出力列の数 | 2 列 |
|---|---|
| 同名の出力列の組 | 0 組 |
| 名前を判定できなかった列 | 0 列 |
出力列の一覧
| # | 式 | 出力列名 | 名前の決まり方 |
|---|---|---|---|
| 1 | price * 2 | ?column? | 列参照でも関数でもない式なので、自動の名前 ?column? |
| 2 | 10 | ?column? | 列参照でも関数でもない式なので、自動の名前 ?column? |
検算(この結果になる理由)
price * 2 も 10 も列の参照でも関数でもない式なので、自動の名前 ?column? が付きます(SELECT 文書「SELECT List」)。2 列とも ?column? ですが、自動の名前は同名の警告にしないため、AS を勧める情報が 2 件出ます。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 完全な SQL の構文解析はしません。サブクエリ・CTE(WITH 句)・UNION を含む問い合わせは、最初の SELECT の選択リストだけを調べるか、判定不能と表示します。
- * や t.* は表の定義で列が決まるため、展開後の列名は判定せず「全列」と表示します。
- 型変換の ::型 を含む式や、サブクエリを式に使った項目の出力名は判定不能と表示します。
- AS を省いた別名は、末尾の名前を別名と読む簡易な規則です。キーワードと同じ名前の別名は AS が必要になる点に注意してください。
ご利用にあたって
- 結果は字句の読み取りにもとづく確認で、実際のデータベースでの解釈を保証するものではありません。
- ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。