方法 : 行を含めたり除外したりする
SELECT クエリが返す行の数を制限するには、検索条件またはフィルター条件を作成します。 SQL では、ステートメントの WHERE 句、または集計クエリの作成中に HAVING 句で検索条件が表示されます。
注意
検索条件を使用して、UPDATE、INSERT RESULTS、INSERT VALUES、DELETE、MAKE TABLE の各クエリの対象となる行を表すこともできます。
クエリを実行すると、データベース エンジンが検索条件を調べて、検索中のテーブルの各行に適用します。 条件を満たす行は、クエリに加えられます。 たとえば、特定の地域の全従業員を検索する検索条件は、次のようになります。
region = 'UK'
結果に行を含めるための条件を設定する場合は、複数の検索条件を使用できます。 たとえば、次の検索条件は、2 つの検索条件で構成されています。 両方の条件を満たす行だけが、クエリの結果セットに含められます。
region = 'UK' AND product_line = 'Housewares'
検索条件は AND または OR で結合できます。 前の例では AND を使用しています。 一方、次に示す条件では OR が使われています。 結果セットには、いずれか一方または両方の検索条件を満たす行が含まれます。
region = 'UK' OR product_line = 'Housewares'
1 つの列に対する複数の検索条件を結合することもできます。 たとえば、次の検索条件では、region 列に対する 2 つの条件が結合されています。
region = 'UK' OR region = 'US'
検索条件の結合の詳細については、次のトピックを参照してください。
例
次に、さまざまな演算子と行抽出条件を使用したクエリの例を示します。
リテラル 単独のテキスト、数値、日付、または論理値です。 次の例では、リテラルを使って、英国内の従業員に関する行をすべて検索します。
WHERE region = 'UK'
列参照 ある列の値と別の列の値を比較します。 次の例では、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)