🙌
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