エイリアスをクエリーの選択リストに使用すると、カラムを別の名前にすることができます。 GROUP BY
、ORDER BY
、または HAVING
句でエイリアスを使用して、カラムを参照できます。
SELECT SQRT(a*b) AS root FROM tbl_name
GROUP BY root HAVING root > 0;
SELECT id, COUNT(*) AS cnt FROM tbl_name
GROUP BY id HAVING cnt > 0;
SELECT id AS 'Customer identity' FROM tbl_name;
標準 SQL では、WHERE
句でのカラムエイリアスへの参照は許可されません。 WHERE
句が評価されるときに、カラム値がまだ判別されていない場合があるため、この制限が課されています。 たとえば、次のクエリーは不正です。
SELECT id, COUNT(*) AS cnt FROM tbl_name
WHERE cnt > 0 GROUP BY id;
WHERE
句は GROUP BY
句に含められる行を判別しますが、行が選択されるまでわからないカラム値のエイリアスを参照して GROUP BY
によってグループ化しています。
クエリーの選択リストで、引用したカラムエイリアスを指定するには、識別子または文字列引用文字を使用します。
SELECT 1 AS `one`, 2 AS 'two';
ステートメント内のどこに指定する場合でも、エイリアスへの引用した参照には、識別子引用符を使用する必要があります。そうしないと、参照は文字列リテラルとして扱われます。 たとえば、次のステートメントはカラム id
の値によってグループ化され、エイリアス `a`
を使用して参照されます。
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY `a`;
このステートメントはリテラル文字列'a'
でグループ化され、次のようには機能しません:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY 'a';