概要:このチュートリアルでは、列のエイリアスとテーブルのエイリアスを含む SQL Server エイリアスの使用方法について学習します。
SQL Server 列エイリアス
SELECT
文を使ってテーブルからデータを照会する場合、SQL Server では列名を出力用の列見出しとして使用します。 次の例を参照してください。
Code language: SQL (Structured Query Language) (sql)
出力に明確に示されているように、first_name
および last_name
列名はそれぞれ列見出しに使用されています。
顧客のフルネームを取得するには、次のクエリに示すように、連結 +
演算子を使用して、ファーストネーム、スペース、ラストネームを連結します。
Code language: SQL (Structured Query Language) (sql)
SQL Server はフルネーム列を ( No column name
) として返しましたが、このケースでは意味がありません。
以下に列エイリアスの構文を示します。
Code language: SQL (Structured Query Language) (sql)
この構文では、AS
キーワードを使用して、列名または式とエイリアスを分離します。
AS
キーワードは任意であるため、次のように列にエイリアスを割り当てることができます:
Code language: SQL (Structured Query Language) (sql)
上記の例に戻ると、列エイリアスを使用してクエリを書き換えることができます:
Code language: SQL (Structured Query Language) (sql)
列エイリアスにスペースが含まれている場合、以下の例のように引用符で括る必要があることに注意してください。
Code language: SQL (Structured Query Language) (sql)
次の例は、列にエイリアスを割り当てる方法を示しています:
Code language: SQL (Structured Query Language) (sql)
この例では、製品カテゴリ列エイリアスはcategory_name
列名よりはるかにはっきりしています。
列にエイリアスを割り当てる場合、次の例に示すように、ORDER BY
句で列名または列エイリアスを使用できます。
Code language: SQL (Structured Query Language) (sql)
なお、ORDER BY
句は処理される最後の句なので、列エイリアスはソート時に判明します。
SQL Server テーブルエイリアス
テーブルは、相関名または範囲変数として知られる別名を与えることができます。
列の別名と同様に、テーブルの別名も、AS
キーワードを使用するかしないかのいずれかで指定できます。
Code language: SQL (Structured Query Language) (sql)
この例では、customers
および orders
テーブルの両方に同じ名前 customer_id
を持つ列があるので、次の構文を使用して列を参照する必要があります:
Code language: SQL (Structured Query Language) (sql)
例えば:
Code language: SQL (Structured Query Language) (sql)
これを行わない場合、SQL Server はエラーを発行します。
上のクエリはかなり読みにくいです。 幸い、次のようにテーブルの別名を使用することで、読みやすさを改善できます。
Code language: SQL (Structured Query Language) (sql)
このクエリでは、c
は sales.customers
テーブルの別名で、o
は sales.orders
テーブルの別名です。
テーブルに別名を割り当てたら、テーブル列を参照するために別名を使用しなければなりません。
このチュートリアルでは、列の別名とテーブルの別名を含む SQL Server の別名の使用方法について学びました。