🙌

Oracle Select文

に公開

🧩 はじめに

SQLでは、SELECT文で列を選択して結果を取得しますが、
その中で意外とつまずきやすいのが 列別名(AS)・NULL値・二重引用符 の扱いです。

この記事では上記をわかりやすく解説します。


💡 列別名(AS)の基本構文

列別名(Column Alias)は、次のように指定します。

SELECT 列名 AS 列別名
FROM テーブル名;

AS は省略可能なので、次のようにも書けます。

SELECT 列名 列別名
FROM テーブル名;

二重引用符の役割

SQLでは、列名や別名にスペース・特殊文字・大文字小文字を含めたいときは
必ず 「二重引用符 (")」 で囲む必要があります。

OK

SELECT salary * 12 AS "Yearly Income"

NG(スペースを含むためエラー)

SELECT salary * 12 AS Yearly Income

大文字・小文字の区別が必要な例

SELECT employee_name "empname"
FROM employees
ORDER BY empname;

実行すると次のようなエラーになります。

ORA-00904: "EMPNAME": 無効な識別子です。

"empname" は二重引用符で囲まれているため、小文字のempname として登録されます。

一方、ORDER BY empname のように引用符を付けないと、Oracleでは自動的に 大文字のEMPNAME として解釈します。

このため、列名が一致せずエラーとなります。

文字列連結でのNULLの扱い

次のSQLを実行したとします。

SELECT '私の月給は' || salary || 'です。'
FROM employees;

employees 表の salary 列が NULL の場合、どのような結果になるでしょうか?

実行結果

私の月給はです。

実際に結合されるのは "私の月給は" と "です。" のみで、
NULL はスキップされて出力されます。

Discussion