適用対象:SQL Server
SELECT
クエリが返す行数を制限するには、検索条件またはフィルター条件を作成します。 SQL では、検索条件はステートメントの WHERE
句に表示されます。集計クエリを作成する場合は、 HAVING
句に表示されます。
手記
検索条件を使用して、更新、結果の挿入、値の挿入、削除、またはテーブル作成クエリの影響を受ける行を指定することもできます。
クエリが実行されると、データベース エンジンは検索条件を調べて、検索するテーブルの各行に適用します。 行が条件を満たしている場合は、クエリに含まれます。 たとえば、特定の地域のすべての従業員を検索する検索条件は次のようになります。
region = 'UK'
結果に行を含める条件を確立するには、複数の検索条件を使用できます。 たとえば、次の検索条件は 2 つの検索条件で構成されます。 クエリには、その行が両方の条件を満たす場合にのみ、結果セットに行が含まれます。
region = 'UK' AND product_line = 'Housewares'
これらの条件は、 AND
または OR
と組み合わせることができます。 前の例では、 AND
を使用しています。 これに対し、次の条件では OR
が使用されます。 結果セットには、検索条件のいずれかまたは両方を満たす行が含まれます。
region = 'UK' OR product_line = 'Housewares'
1 つの列に検索条件を組み合わせることもできます。 たとえば、次の条件は、リージョン列の 2 つの条件を結合します。
region = 'UK' OR region = 'US'
検索条件の組み合わせの詳細については、次の記事を参照してください。
- 抽出条件ペインで検索条件を結合するための規則 (Visual Database Tools)
- 1 つの列に複数の検索条件を指定する (Visual Database Tools)
- 複数の列に複数の検索条件を指定する (Visual Database Tools)
- AND に優先順位がある場合に条件を結合する (Visual Database Tools)
- OR に優先順位がある場合に条件を結合する (Visual Database Tools)
例
さまざまな演算子と行条件を使用するクエリの例を次に示します。
リテラル
1 つのテキスト、数値、日付、または論理値。 次の例では、リテラルを使用して、英国の従業員のすべての行を検索します。
WHERE region = 'UK'
列参照
1 つの列の値と別の列の値を比較します。 次の例では、生産コストの値が出荷コストより低いすべての行を対象に、
products
テーブルを検索します。WHERE prod_cost < ship_cost
関数
データベース バックエンドが検索の値を計算するために解決できる関数への参照。 この関数には、データベース サーバーによって定義された関数、またはスカラー値を返すユーザー定義関数を指定できます。 次の例では、現在の注文を検索します (GETDATE( ) 関数は現在の日付を返します。
WHERE order_date = GETDATE()
NULL
次の例では、authors
テーブルを検索して、ファイルに名を付けたすべての作成者を検索します。WHERE au_fname IS NOT NULL
計算
リテラル、列参照、またはその他の式を含むことができる計算の結果。 次の例では、
products
テーブルを検索して、小売販売価格が生産コストの 2 倍以上であるすべての行を検索します。WHERE sales_price > (prod_cost * 2)