適用対象:SQL Server
条件をOR
にリンクし、AND
にリンクされた条件よりも優先するには、AND
条件ごとにOR
条件を繰り返す必要があります。
たとえば、会社に 5 年以上勤務していて、低いレベルの仕事を持っている、または退職したすべての従業員を見つけるとします。 このクエリには 3 つの条件が必要です。1 つの条件は、 AND
を持つ 2 つの追加条件にリンクされています。
5 年前より前の採用日を持つ従業員と、
ジョブ レベルが 100 の従業員、またはステータスが "R" (退職の場合) の従業員。
次の手順は、[抽出条件] ペインでこの種類のクエリを作成する方法を示しています。
OR に優先順位がある場合に条件を結合する
抽出条件ペイン (Visual Database Tools) で、検索するデータ列を追加します。
AND
にリンクされた 2 つ以上の条件を使用して同じ列を検索する場合は、検索する値ごとにデータ列名をグリッドに 1 回追加する必要があります。OR
グリッド列に最初の条件を入力し、2 番目の条件 (および後続の条件) を別の Or... 列に入力して、にリンクする条件を作成します。 たとえば、OR
列とjob_lvl
列を検索するstatus
と条件をリンクするには、[= 100
のフィルター] 列にjob_lvl
を入力し、= 'R'
の [Or...] 列にstatus
を入力します。これらの値をグリッドに入力すると、SQL ペインのステートメントに次の
WHERE
句が生成されます。WHERE (job_lvl = 100) OR (status = 'R')
OR
条件ごとに 1 回入力して、AND
条件を作成します。 各エントリを、対応するOR
条件と同じグリッド列に配置します。 たとえば、AND
列を検索し、hire_date
条件の両方に適用するOR
条件を追加するには、[抽出条件] 列と< '1/1/91'
] 列の両方にを入力します。これらの値をグリッドに入力すると、SQL ペインのステートメントに次の
WHERE
句が生成されます。WHERE (job_lvl = 100) AND (hire_date < '01/01/91') OR (status = 'R') AND (hire_date < '01/01/91')
ヒント
AND
条件を繰り返すには、条件を 1 回追加してから、[編集] メニューの [切り取りと貼り付け] コマンドを使用して、他のOR
条件に対して繰り返すことができます。
クエリおよびビュー デザイナーによって作成されるWHERE
句は、かっこを使用してWHERE
よりもOR
の優先順位を指定する次のAND
句と同じです。
WHERE (job_lvl = 100 OR status = 'R') AND
(hire_date < '01/01/91')
手記
SQL ペイン (Visual Database Tools) で直前に示した形式で検索条件を入力し、[ダイアグラム] ペインまたは [抽出条件] ペインでクエリを変更した場合、クエリおよびビュー デザイナーは、両方のAND
条件に明示的に分散されたOR
条件と一致するように SQL ステートメントを再作成します。