次の方法で共有


OR に優先順位がある場合に条件を結合する (Visual Database Tools)

適用対象:SQL Server

条件をORにリンクし、ANDにリンクされた条件よりも優先するには、AND条件ごとにOR条件を繰り返す必要があります。

たとえば、会社に 5 年以上勤務していて、低いレベルの仕事を持っている、または退職したすべての従業員を見つけるとします。 このクエリには 3 つの条件が必要です。1 つの条件は、 ANDを持つ 2 つの追加条件にリンクされています。

  • 5 年前より前の採用日を持つ従業員と、

  • ジョブ レベルが 100 の従業員、またはステータスが "R" (退職の場合) の従業員。

次の手順は、[抽出条件] ペインでこの種類のクエリを作成する方法を示しています。

OR に優先順位がある場合に条件を結合する

  1. 抽出条件ペイン (Visual Database Tools) で、検索するデータ列を追加します。 ANDにリンクされた 2 つ以上の条件を使用して同じ列を検索する場合は、検索する値ごとにデータ列名をグリッドに 1 回追加する必要があります。

  2. OR グリッド列に最初の条件を入力し、2 番目の条件 (および後続の条件) を別の Or... 列に入力して、にリンクする条件を作成します。 たとえば、OR列とjob_lvl列を検索するstatusと条件をリンクするには、[= 100のフィルター] 列にjob_lvlを入力し、= 'R'の [Or...] 列にstatusを入力します。

    これらの値をグリッドに入力すると、SQL ペインのステートメントに次の WHERE 句が生成されます。

    WHERE (job_lvl = 100) OR (status = 'R')
    
  3. 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 ステートメントを再作成します。