これは Access SQL に関する一連の記事の 1 つです。 この記事では、SELECT 句を記述する方法について説明し、例を使用してそれらの句を記述するときに使用できるさまざまな手法を示します。
Access SQL の概要については、「Access SQL: 基本的な概念、用語、および構文」の記事を参照してください。
この記事の内容
フィールドを選択する: SELECT 句
通常、SELECT ステートメントは SELECT 句で始まります。 SELECT 句を使用して、クエリで使用するデータを含むフィールドの名前を指定します。 フィールドの代わりに、または フィールドに加えて式を使用することもできます。 別の SELECT ステートメントをフィールドとして使用することもできます。これはサブクエリと呼ばれます。
たとえば、顧客の電話番号を調べる必要があるとします。 顧客の電話番号を格納しているフィールドが txtCustPhone であるとすると、SELECT 句は次のようになります。
SELECT [txtCustomerPhone]
名前は角かっこを使用して囲むことができます。 名前にスペースや特殊文字 (コンマやピリオドなど) が含まれていない場合は、角かっこを省略できます。 名前にスペースや特殊文字が含まれている場合は、角かっこを使用する必要があります。
ヒント: スペースを含む名前は読みやすく、フォームやレポートをデザインするときに時間の節約につながる可能性がありますが、SQL ステートメントの作成時には入力が増えることがあります。 Access データベースのオブジェクトに名前を付けるときは、この点を考慮してください。
同じ名前を持つ複数のフィールドが SQL ステートメントに含まれる場合は、SELECT 句で、各フィールドのデータ ソースの名前をフィールド名に追加する必要があります。 このとき、FROM 句で使用するデータ ソースと同じ名前を使用します。
すべてのフィールドを選択する
データ ソースのすべてのフィールドを含める場合は、SELECT 句ですべてのフィールドを個別に選択するか、アスタリスク ワイルドカード文字 (*) を使用できます。 アスタリスクを使用した場合、Access は、クエリの実行時にデータ ソースに含まれているフィールドを判断し、それらのすべてのフィールドをクエリに含めます。 これにより、新しいフィールドがデータ ソースに追加された場合でも、クエリには最新の状態を反映できます。
アスタリスクは、SQL ステートメントで 1 つ以上のデータ ソースに使用できます。 データ ソースが複数の場合にアスタリスクを使用するには、どのデータ ソースからすべてのフィールドを含めるかを Access が判断できるように、アスタリスクと共にデータ ソース名を含める必要があります。
たとえば、[受注] テーブルのすべてのフィールドを選択し、[連絡先] テーブルからは電子メール アドレスのみを選択するとします。 SELECT 句は次のようになります。
SELECT Orders.*, Contacts.[E-mail Address]
注: アスタリスクをどの時点で使用したかを覚えておく必要があります。 新しいフィールドが後からデータ ソースに追加され、そのフィールドに対して計画していなかった場合、クエリ結果が意図していたものと異なってしまう場合があります。
個別の値を選択する
ステートメントで重複するデータが選択される可能性があり、個別の値だけを取得する方が望ましい場合は、SELECT 句で DISTINCT キーワードを使用できます。 たとえば、それぞれの顧客にはいくつかの関係先があり、その一部で同じ電話番号が使用されているとします。 個々の電話番号が 1 回だけ取得されるようにするには、SELECT 句を次のように使用します。
SELECT DISTINCT [txtCustomerPhone]
フィールドまたは式に代替名を使用する: AS キーワード
SELECT 句で AS キーワードとフィールドの別名を使用すると、データシート ビューのフィールドに表示されるラベルを変更できます。 フィールドの別名は、クエリ結果をわかりやすくするために、クエリでフィールドに割り当てる名前です。 たとえば、txtCustPhone という名前のフィールドからデータを選択し、そのフィールドに顧客の電話番号が格納されている場合、SELECT ステートメントでフィールドの別名を次のように使用すると、結果の読みやすさが向上します。
SELECT [txtCustPhone] AS [Customer Phone]
注: SELECT 句で式を使用する場合は、フィールドの別名を使用する必要があります。
式を使用して選択する
データに基づいて計算を調べたり、フィールドのデータの一部のみを取得することがあります。 たとえば、データベースの "誕生日" フィールド内のデータに基づいて、顧客が生まれた年を返すことにしたとします。 SELECT 句は次のようになります。
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
この式は、DatePart 関数と、"yyyy" (定数) および [誕生日] (識別子) の 2 つの引数で構成されます。
1 つの入力値を与えたときに 1 つの値を出力する式であれば、任意の有効な式をフィールドとして使用できます。