方法 : OR が優先する場合の条件を結合する
AND で結合した条件よりも OR で結合した条件を優先させるには、各 OR 条件に対して AND 条件を繰り返す必要があります。
たとえば、5 年以上前に入社した従業員のうち、初級レベルの仕事に従事している従業員または退職した従業員を検索すると仮定します。このクエリには、3 つの条件が必要であり、その中の 2 つの条件に対して 1 つの条件を AND で結合する必要があります。
入社日が 5 年以上前の従業員、および
職務レベルが 100 または状態が "R" (退職者を示す) の従業員
抽出条件ペインでこの種のクエリを作成する方法を次の手順で説明します。
[!メモ]
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。
OR が優先する場合に条件を結合するには
抽出条件ペインに検索するデータ列を追加します。AND で結合された複数の条件を使用して同じ列を検索する場合は、検索する値ごとにデータ列名をグリッドに追加する必要があります。
複数の条件を OR で結合するには、最初の条件を [フィルター] グリッド列に、2 番目の条件を別の [または...] 列に入力します。3 番目以降の条件も同様に入力します。たとえば、job_lvl列の条件とstatus 列の条件を OR で結合して検索するには、job_lvl の [フィルター] 列に「= 100」、status の [または...] 列に「= 'R'」のように値を入力します。
グリッドに値を入力すると、SQL ペインでステートメントの WHERE 句が次のように作成されます。
WHERE (job_lvl = 100) OR (status = 'R')
各 OR 条件に 1 つずつ AND 条件を作成します。該当する OR 条件と同じグリッド列に各 AND 条件を入力します。たとえば、hire_date 列を検索する AND 条件を両方の 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 条件に対しても同じ AND 条件を繰り返すことができます。
クエリおよびビュー デザイナーによって作成される WHERE 句は、かっこを使用して OR が AND より優先することを示す次の WHERE 句と同じです。
WHERE (job_lvl = 100 OR status = 'R') AND
(hire_date < '01/01/91')
[!メモ]
SQL ペインに上の形式で検索条件を入力した後でダイアグラム ペインまたは抽出条件ペインでクエリを変更した場合、クエリおよびビュー デザイナーで再度作成される SQL ステートメントの形式は、両方の OR 条件に AND 条件が明示的に適用される形式になります。