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