Sdílet prostřednictvím


Kombinování podmínek v případech, kdy má nebo prioritu (Visual Database Tools)

platí pro:SQL Server

Chcete-li propojit podmínky s podmínkami propojenými ANDs OR podmínkami a dát jim přednost, musíte podmínku opakovat pro každou OR podmínkuAND.

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: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érií (Nástroje vizuální databáze) přidejte datové sloupce, které chcete prohledat. Pokud chcete prohledat stejný sloupec pomocí dvou nebo více podmínek propojených s 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, se OR kterými se má propojit, zadáním prvního do sloupce mřížky filtru a druhého (a následného) do samostatných sloupců Nebo... Chcete-li například propojit podmínky s vyhledáváním ORjob_lvl a status sloupci, zadejte = 100 do sloupce Filtr a job_lvl= 'R' do sloupce Or... pro status.

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

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

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

    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 ji pomocí příkazů Vyjmout a Vložit z nabídky Upravit zopakujete pro další OR podmínky.

Klauzule WHERE vytvořená návrhářem dotazu a zobrazení je ekvivalentní následující WHERE klauzuli, která používá závorky k určení priority OR před 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 zobrazeném bezprostředně nahoře v podokně SQL (Visual Database Tools), ale v podokně Diagram nebo Kritéria provedete změnu dotazu v podokně Diagram nebo Kritéria, znovu vytvoří příkaz SQL tak, aby odpovídal formuláři s podmínkou explicitně distribuovanou AND do obou OR podmínek.