Dela via


Kombinera villkor när ELLER har företräde (Visual Database Tools)

gäller för:SQL Server

Om du vill länka villkor med OR och ge dem företräde framför villkor som är kopplade till AND måste du upprepa AND-villkoret för varje OR-villkor.

Anta till exempel att du vill hitta alla anställda som har arbetat i företaget i mer än fem år och har jobb på lägre nivå eller som har gått i pension. Den här frågan kräver tre villkor, ett enda villkor som är kopplat till två ytterligare villkor med AND:

  • Anställda med anställningsdatum tidigare än fem år sedan, och

  • Anställda med en jobbnivå på 100 eller vars status är "R" (för pensionerad).

Följande procedur visar hur du skapar den här typen av fråga i fönstret Villkor.

Kombinera villkor när OR har företräde

  1. I fönstret Villkorlägger du till de datakolumner som du vill söka efter. Om du vill söka i samma kolumn med hjälp av två eller flera villkor som är länkade till AND måste du lägga till datakolumnnamnet i rutnätet en gång för varje värde som du vill söka efter.

  2. Skapa de villkor som ska länkas med ELLER genom att ange den första i kolumnen Filter grid och den andra (och efterföljande) i separata Eller... kolumner. Om du till exempel vill länka villkor med ELLER som söker i kolumnerna job_lvl och status anger du = 100 i kolumnen Filter för job_lvl och = 'R' i kolumnen Eller... kolumn för status.

    Om du anger dessa värden i rutnätet skapas följande WHERE-sats i -instruktionen i SQL-fönstret:

    WHERE (job_lvl = 100) OR (status = 'R')  
    
  3. Skapa AND-villkoret genom att ange det en gång för varje OR-villkor. Placera varje post i samma rutnätskolumn som det OR-villkor som den motsvarar. Om du till exempel vill lägga till ett AND-villkor som söker i kolumnen hire_date och gäller för båda OR-villkoren anger du < '1/1/91' i både kolumnen Villkor och Eller... kolumn.

    Om du anger dessa värden i rutnätet skapas följande WHERE-sats i -instruktionen i SQL-fönstret:

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

    Tips

    Du kan upprepa ett OCH-villkor genom att lägga till det en gång och sedan använda kommandona Klipp ut och Klistra in från menyn Redigera för att upprepa det för andra ELLER-villkor.

WHERE-satsen som skapas av fråge- och vydesignern motsvarar följande WHERE-sats, som använder parenteser för att ange prioriteten för ELLER framför AND:

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

Note

Om du anger sökvillkoren i det format som visas omedelbart ovan i SQL-fönstret, men sedan gör en ändring i frågan i fönstret Diagram eller Villkor, återskapar fråge- och vydesignern SQL-instruktionen så att den matchar formuläret med AND-villkoret som uttryckligen distribueras till båda ELLER-villkoren.

Se även

konventioner för att kombinera sökvillkor i villkorsfönstret (Verktyg för visuell databas)
Ange sökvillkor (Visual Database Tools)