WHERE 句

FROM 句で記述されたテーブル内で、SELECT ステートメント、UPDATE ステートメント、または DELETE ステートメントの対象となるレコードを指定します。

構文

SELECT fieldlist
    FROM tableexpression
    WHERE criteria

WHERE 句を使用する SELECT ステートメントには、次の指定項目があります。

指定項目 内容
fieldlist 取得する 1 つ以上のフィールドの名前。フィールド名の別名や選択述語 (ALL、DISTINCT、DISTINCTROW、TOP) などの SELECT ステートメント オプションも指定できます。
tableexpression データを取得する 1 つ以上のテーブルの名前。
criteria クエリでレコードを抽出する場合に使用する条件

解説

Microsoft Jet データベース エンジンは、WHERE 句で指定した条件を満たすレコードを選択します。WHERE 句で指定しない場合、クエリはテーブル内のすべての行を返します。WHERE 句や JOIN 句を使用しないクエリで複数のテーブルを指定した場合には、クエリはそれらのテーブルのデカルト積を返します。

WHERE 句は省略可能です。WHERE 句を指定する場合は FROM 句に続けて記述します。たとえば、販売部門のすべての社員を選択したり (WHERE 部門 = '販売')、年齢が 18 〜 30 歳のすべての顧客を選択したり (WHERE 年齢 Between 18 And 30) できます。

JOIN 句を使用せずに複数のテーブルで SQL 結合をする場合、返される Recordset オブジェクトは更新できなくなります。

WHERE 句は、HAVING 句と似ていますが、次のような違いがあります。WHERE 句は選択するレコードを決めるために使用しますが、HAVING 句は、GROUP BY 句でグループ化したレコードの中でどのレコードを表示するのかを決めるために使用します。

WHERE 句は、GROUP BY 句でグループ化しないレコードを除く場合に使用します。

SQL ステートメントが返すレコードは、さまざまな式を使用することで決まります。たとえば、次の SQL ステートメントでは給与が 210,000 円を超える社員をすべて選択します。

SELECT 氏名, 給与

FROM 社員

WHERE 給与 > 210000;

    

WHERE 句には、AndOr などの論理演算子を組み合わせて最大 40 個までの式を指定できます。

スペースや区切り記号を含むフィールド名を入力する場合は、次のようにフィールド名を角かっこ ([ ]) で囲みます。

SELECT 氏名,[ふりがな (氏名)]

    

引数 criteria日付リテラルを指定する場合は、日本語版の Microsoft® Jet データベース エンジンであっても米国形式で指定する必要があります。たとえば、1996 年 5月 10日を指定する場合は、5/10/96 のように米国形式で表します。日付は、必ず次の例のように数値記号 (#) で囲んでください。

たとえば、1996 年 5月 10日付けのレコードを米国語のデータベースの中で検索する場合は、次のような SQL ステートメントを使用します。

SELECT *

FROM 注文

WHERE 出荷日 = #5/10/96#;

    

DateValue 関数を使用すると、Microsoft Windows® のコントロール パネルの [地域] ダイアログ ボックスで設定されている形式で日付を指定できます。例を次に示します。米国形式に設定してある場合

SELECT *

FROM 注文

WHERE 出荷日 = DateValue('5/10/96');

    

日本形式に設定してある場合

SELECT *

FROM 注文

WHERE 出荷日 = DateValue('10/5/96');

    


メモ 抽出条件文字列で参照される列の型が GUID 型 (GUID) の場合は、抽出条件式で使用する構文が次のように多少異なります。

WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

    

上の例のように、必ずネストした中かっこ ({}) とハイフン (-) を含めるようにしてください。


参照
ALL DISTINCT、DISTINCTROW、TOP 述語 (Microsoft Jet SQL) LEFT JOIN、RIGHT JOIN 操作 (Microsoft Jet SQL)
DELETE ステートメント (Microsoft Jet SQL) ORDER BY 句 (Microsoft Jet SQL)
FROM 句 (Microsoft Jet SQL) SELECT ステートメント (Microsoft Jet SQL)
GROUP BY 句 (Microsoft Jet SQL) SELECT...INTO ステートメント (Microsoft Jet SQL)
HAVING 句 (Microsoft Jet SQL) SQL 集計関数 (SQL)
IN 句 (Microsoft Jet SQL) UPDATE ステートメント (Microsoft Jet SQL)
INNER JOIN 操作 (Microsoft Jet SQL)  

使用例

WHERE 句の使用例