FROM 句で一覧されたテーブルから、SELECT、UPDATE、または DELETE ステートメントの影響を受けるレコードを指定します。
構文
SELECT fieldlist
FROM tableexpression WHERE criteriaWHERE 句を使用する SELECT ステートメントには、次の指定項目があります。
引数 |
説明 |
fieldlist |
取得する 1 つ以上のフィールドの名前。フィールド名の別名、選択述語 (ALL、DISTINCT、DISTINCTROW、および TOP)、または SELECT ステートメント オプションも指定できます。 |
tableexpression |
データを取得するテーブルの名前です。 |
criteria |
クエリ結果に含めるために、レコードが満たす必要がある式です。 |
解説
Microsoft Access データベース エンジンでは、WHERE 句に一覧された条件を満たすレコードを選択します。 WHERE 句を指定しない場合、クエリではテーブルからすべての行が返されます。 クエリで複数のテーブルを指定していて、WHERE 句または JOIN 句を含めていない場合は、クエリではテーブルの デカルト積を生成します。
WHERE は省略可能ですが、含まれる場合は、FROM が続きます。 たとえば、営業部門の全従業員 (WHERE Dept = 'Sales') を選択したり、18 - 30 歳のすべての顧客 (WHERE Age Between 18 And 30) を選択したりすることができます。
複数のテーブルで SQL の参加操作を実行するために、JOIN 句を使用しない場合は、結果の Recordset オブジェクトを更新することはできません。
WHERE は HAVING と似ています。 WHERE は選択するレコードを指定します。 同様に、GROUP BY によってレコードをグループ化した後、HAVING は表示するレコードを指定します。
WHERE 句を使用して、GROUP BY 句でグループ化しないレコードを除去します。
さまざまな式を使用して、SQL ステートメントで返すレコードを決定します。 たとえば、次の SQL ステートメントでは、給与が 21,000 ドル以上の従業員をすべて選択します。
SELECT LastName, Salary FROM Employees WHERE Salary > 21000;
WHERE 句には、AND や OR などの論理演算子を組み合わせて最大 40 個までの式を指定できます。
スペースや句読点を含むフィールド名を入力するときは、角かっこ ([ ]) で名前を囲みます。 たとえば、顧客情報テーブルには、特定の顧客に関する情報が含まれる場合があります。
SELECT [Customer’s Favorite Restarant]
criteria 引数を指定する場合、米国版の Microsoft Access データベース エンジンを使用していない場合でも、日付リテラルを米国形式にする必要があります。 たとえば、1996 年 5 月 10 日は、英国では 10/5/96 と記述され、米国では 5/10/96 と記述されます。 次の例に示すように、日付リテラルはシャープ記号 (#) で囲んでください。
英国データベースの 1996 年 5 月 10 日のレコードを検索するには、次の SQL ステートメントを使用する必要があります。
SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;
また、Microsoft Windows® で確立された国際設定を認識する、DateValue 関数を使用することもできます。 たとえば、米国には次のコードを使用します。
SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');
また、英国には次のコードを使用します。
SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');
注: 条件の文字列で参照される列が GUID 型の場合は、条件式は若干異なる構文を使用します。
WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}
上述のように、入れ子にしたかっこやハイフンを含めてください。