SQLを使用してデータを取得する際、列見出し(列名)を変更するとデータの可読性が大幅に向上します。デフォルトの列名がENAMEやSALのような略語だと内容が分かりにくいですが、「社員名」や「給与」といった分かりやすい名前に変更することで、クエリの意図が明確になります。
本記事では、scottスキーマのEMP表を活用し、初心者から中級者まで役立つ「列見出しの変更方法」を体系的に解説します。基本的な使い方から注意点、応用例、業務での活用方法までを網羅しました。
なお、本記事ではSCOTTサンプルスキーマを使用した例で解説します。
SCOTTサンプルスキーマは以下を実行することでインポートおよび使用が可能です。
$ sqlplus / as sysdba
SQL> @?/rdbms/admin/utlsampl.sql
$ sqlplus scott/tiger
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
1. SELECT文で列見出しを変更する基本
SQLで列見出しを変更する際には、以下の形式を使用します。
基本構文
SELECT 列名 AS 新しい列見出し
FROM テーブル名;
または、ASを省略した形式でも動作します:
SELECT 列名 新しい列見出し
FROM テーブル名;
基本例: ENAMEとSALをわかりやすく変更
以下のクエリでは、ENAMEを「社員名」、SALを「給与」に変更しています。
SELECT ENAME AS 社員名, SAL AS 給与
FROM EMP;
実行結果:
社員名 給与
-------- -----
SMITH 800
ALLEN 1600
WARD 1250
JONES 2975
MARTIN 1250
補足: 「AS」の省略
次のクエリでも同じ結果を得られます。
SELECT ENAME 社員名, SAL 給与
FROM EMP;
2. ダブルクォート(”)が必要なケース
列見出しに特定の条件が含まれる場合は、ダブルクォート(” “)を使う必要があります。
ダブルクォートが必要な条件
- 列見出しにスペースが含まれる場合
- 列見出しが数字で始まる場合
- 列見出しに特殊文字(ハイフン
-、括弧()など)が含まれる場合 - Oracleの予約語を列見出しに使用する場合
- 列見出しの大文字・小文字を区別する場合
2.1 スペースを含む列見出し
スペースを含む列見出しはダブルクォートで囲む必要があります。
SELECT ENAME AS "社員 名", SAL AS "月額 給与"
FROM EMP;
実行結果:
社員 名 月額 給与
-------- --------
SMITH 800
ALLEN 1600
WARD 1250
2.2 数字で始まる列見出し
列見出しが数字で始まる場合も、ダブルクォートが必要です。
SELECT ENAME AS "1番目の社員", SAL AS "2024年給与"
FROM EMP;
実行結果:
1番目の社員 2024年給与
-------- --------
SMITH 800
ALLEN 1600
WARD 1250
2.3 特殊文字を含む列見出し
特殊文字(例: ハイフン-、括弧()など)が含まれる場合もダブルクォートが必須です。
SELECT ENAME AS "社員-名前", SAL AS "給与(月額)"
FROM EMP;
実行結果:
社員-名前 給与(月額)
-------- ---------
SMITH 800
ALLEN 1600
WARD 1250
2.4 Oracleの予約語を使用する場合
Oracleの予約語(例: SELECT, FROM, GROUPなど)を列見出しに使用する場合、ダブルクォートを使わないとエラーになります。
SELECT ENAME AS "SELECT", SAL AS "FROM"
FROM EMP;
実行結果:
SELECT FROM
-------- -----
SMITH 800
ALLEN 1600
2.5 大文字・小文字を区別する場合
デフォルトではOracleは列別名を大文字に変換しますが、小文字や混在させたい場合はダブルクォートを使用します。
SELECT ENAME AS "employeeName", SAL AS "MonthlySalary"
FROM EMP;
実行結果:
employeeName MonthlySalary
------------- -------------
SMITH 800
ALLEN 1600
3. 応用例: 業務で役立つ列見出しの変更
例1: 計算結果を含む列見出し
計算式を用いた列見出しの変更も可能です。
SELECT ENAME AS 社員名, SAL AS 基本給, SAL * 12 AS "年収"
FROM EMP;
実行結果:
社員名 基本給 年収
-------- ----- ------
SMITH 800 9600
ALLEN 1600 19200
WARD 1250 15000
例2: 名前に役職を付加する
名前に役職を付けて分かりやすく表示します。
SELECT ENAME || ' (Manager)' AS "社員と役職", JOB AS 職務内容
FROM EMP
WHERE JOB = 'MANAGER';
実行結果:
社員と役職 職務内容
---------------- ---------
JONES (Manager) MANAGER
BLAKE (Manager) MANAGER
CLARK (Manager) MANAGER
4. よくあるエラーとその解決法
エラー1: ダブルクォートを省略
SELECT ENAME AS 社員 名, SAL AS 月額 給与
FROM EMP;
エラー内容:
ORA-00923: FROMキーワードが指定の位置にありません。
解決策:
スペースや特殊文字を含む列見出しはダブルクォートで囲みます。
SELECT ENAME AS "社員 名", SAL AS "月額 給与"
FROM EMP;
エラー2: Oracleの予約語を使用
SELECT ENAME AS SELECT, SAL AS FROM
FROM EMP;
エラー内容:
ORA-00923: FROMキーワードが指定の位置にありません。
解決策:
予約語をダブルクォートで囲みます。
SELECT ENAME AS "SELECT", SAL AS "FROM"
FROM EMP;
5. まとめ
- 列見出しを変更する利点
データの意味を直感的に理解できるようになり、クエリの意図が明確になります。 - ダブルクォートが必要なケース
スペース、数字で始まる列名、特殊文字、予約語、大文字・小文字を区別する場合に必要です。 - 実務で役立つ応用
計算結果や文字列結合を使ったカスタム列見出しは、レポート作成やデータ分析に非常に便利です。
この記事を活用して、より読みやすく効率的なSQLクエリを作成しましょう!
[参考]
Oracle Database SQL言語リファレンス 19c




コメント