Sdílet prostřednictvím


Kombinování podmínek, když má přednost OR (Visual Database Tools)

platí pro:SQL Server

Chcete-li propojit podmínky s operátorem OR a dát jim přednost před podmínkami propojenými s operátorem AND, je nutné opakovat podmínku AND pro každou podmínku OR.

Představte si například, že chcete najít všechny zaměstnance, kteří byli ve společnosti déle než pět let a mají pracovní místa nižší úrovně nebo jsou vyřazeni. Tento dotaz vyžaduje tři podmínky, jednu podmínku propojenou se dvěma dalšími podmínkami pomocí funkce AND:

  • Zaměstnanci s datem přijetí starším než před pěti lety a

  • Zaměstnanci s pracovní úrovní 100 nebo ti, kteří mají stav "R" (pro důchod).

Následující postup ukazuje, jak vytvořit tento typ dotazu v podokně Kritéria.

Kombinování podmínek, pokud má prioritu NEBO

  1. V podokně Kritériapřidejte datové sloupce, které chcete hledat. Pokud chcete prohledat stejný sloupec pomocí dvou nebo více podmínek propojených s funkcí AND, je nutné přidat název datového sloupce do mřížky jednou pro každou hodnotu, kterou chcete prohledat.

  2. Vytvořte podmínky, které se mají propojit s operátorem OR, zadáním prvního do sloupce v mřížce filtru a druhého (a následných) do samostatných sloupců Or.... Pokud chcete například propojit podmínky s použitím NEBO, které hledají ve sloupcích job_lvl a status, zadejte = 100 do sloupce Filtr pro job_lvl a = 'R' do sloupce Nebo... pro status.

    Zadáním těchto hodnot v mřížce se v příkazu v podokně SQL vytvoří následující klauzule WHERE:

    WHERE (job_lvl = 100) OR (status = 'R')  
    
  3. Vytvořte podmínku AND tak, že ji zadáte jednou pro každou podmínku OR. Umístěte každou položku do stejného sloupce mřížky jako odpovídající podmínku OR. Pokud chcete například přidat podmínku AND, která prohledá hire_date sloupec a vztahuje se na obě podmínky OR, zadejte < '1/1/91' do sloupce Kritéria i Nebo... sloupec.

    Zadáním těchto hodnot v mřížce se v příkazu v podokně SQL vytvoří následující klauzule WHERE:

    WHERE (job_lvl = 100) AND   
      (hire_date < '01/01/91' ) OR  
      (status = 'R') AND   
      (hire_date < '01/01/91' )  
    

    Spropitné

    Podmínku AND můžete opakovat tak, že ji přidáte jednou a potom pomocí příkazů Vyjmout a Vložit z nabídky Upravit ji vložíte pro další podmínky typu OR.

Klauzule WHERE vytvořená návrhářem dotazu a zobrazení je ekvivalentní následující klauzuli WHERE, která používá závorky k určení priority or over AND:

WHERE (job_lvl = 100 OR status = 'R') AND  
   (hire_date < '01/01/91')  

Poznámka

Pokud zadáte podmínky hledání ve formátu uvedeném výše v podokně SQL, ale následně provedete změnu dotazu v podoknech Diagram nebo Kritéria, návrhář dotazů a zobrazení přepracuje příkaz SQL tak, aby odpovídal formuláři, přičemž podmínka AND je explicitně rozdělena do obou podmínek OR.

Viz také

Konvence pro kombinování podmínek hledání v podokně kritérií (Visual Database Tools)
Zadejte kritéria hledání (Visual Database Tools)