適用対象: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 ステートメントを再作成します。