Dette er én artikel i en række om Access SQL. Denne artikel beskriver, hvordan du kan skrive en WHERE-delsætning og bruger eksempler til at illustrere forskellige teknikker, du kan bruge i en WHERE-delsætning.
WHERE-delsætningen i en SQL-sætning angiver kriterier, som feltværdierne skal opfylde for de poster, der indeholder de værdier, der skal medtages i resultaterne af forespørgslen.
Du kan få et overblik over Access SQL i artiklen Access SQL: grundlæggende begreber, ordliste og syntaks.
Denne artikel indeholder
Begræns resultaterne ved hjælp af kriterier
Når du vil bruge dataene til at begrænse antallet af poster, der returneres i en forespørgsel, kan du bruge kriterier. Et forespørgselskriterium minder om en formel – det er en streng, der kan bestå af feltreferencer, operatorer og konstanter. Forespørgselskriterier er en type af udtryk.
I den følgende tabel vises nogle eksempelkriterier med en forklaring på, hvordan de fungerer.
Kriterier |
Beskrivelse |
>25 og <50 |
Dette kriterium gælder for et Tal-felt, f.eks. Pris eller EnhederPåLager. Det indeholder kun de poster, hvor feltet Pris eller EnhederPåLager indeholder en værdi, der er større end 25 og mindre end 50. |
DateDiff ( "åååå"; [Fødselsdato]; Dato()) > 30 |
Dette kriterium gælder for et felt med Dato og klokkeslæt, f.eks. Fødselsdato. Kun poster, hvor antallet af år mellem en persons fødselsdato og dags dato er større end 30, medtages i forespørgselsresultatet. |
Is Null |
Dette kriterium kan anvendes på alle typer for at vise poster, hvor feltværdien er nul. |
Som du kan se i den forrige tabel, kan kriterier se meget forskellige ud fra hinanden afhængigt af datatypen for de felter, kriterierne gælder for, og dine specifikke krav. Nogle kriterier er enkle og anvender grundlæggende operatorer og konstanter. Andre er komplekse og anvender funktioner, specielle operatorer og medtager feltreferencer.
Vigtigt!: Hvis der anvendes et felt med en aggregeringsfunktion, kan du ikke angive kriterier for det pågældende felt i en WHERE-delsætning. I stedet skal du bruge en HAVING-delsætning til at angive kriterier for aggregerede felter. Du kan få mere at vide i artiklerne Access SQL: grundlæggende begreber, terminologi og syntaks og HAVING-delsætningen.
Syntaks for WHERE-delsætning
Du kan bruge forespørgselskriterier i WHERE-delsætningen af en SELECT-sætning.
En WHERE-delsætning har følgende grundlæggende syntaks:
WHERE field = criterion
Antag, at du skal bruge telefonnummeret på en kunde, men du kan kun huske, at kundens efternavn er Bagel. I stedet for at gennemse alle telefonnumre i databasen kan du bruge en WHERE-delsætning til at begrænse resultaterne og gøre det nemmere at finde det telefonnummer, du skal bruge. Forudsat at efternavne er gemt i et felt, der hedder Efternavn, vises din WHERE-delsætning som følger:
WHERE [LastName]='Bagel'
Bemærk!: Du behøver ikke at basere kriterierne i din WHERE-delsætning på værdiernes ækvivalens. Du kan bruge andre sammenligningsoperatorer, f.eks. større end (>) eller mindre end (<). Eksempel: WHERE [Pris]>100.
Brug WHERE-delsætningen til at kombinere datakilder
Nogle gange vil du måske kombinere datakilder på baggrund af felter, der indeholder matchende data, men har forskellige datatyper. Eksempelvis kan et felt i én tabel have datatypen Tal, og du vil sammenligne dette felt med et felt i en anden tabel, der indeholder datatypen Tekst.
Du kan ikke oprette en joinforbindelse mellem felter, der har forskellige datatyper. Hvis du vil kombinere data fra to datakilder, der er baseret på værdierne i felter, som har forskellige datatyper, skal du oprette en WHERE-delsætning, der anvender ét felt som et kriterium for et andet felt, ved hjælp af nøgleordet LIKE.
Antag f.eks., at du vil bruge data fra tabel1 og tabel2, men kun når dataene i felt1 (et tekstfelt i tabel1) stemmer overens med dataene i felt2 (et talfelt i tabel2). Din WHERE-delsætning ville ligne denne:
WHERE field1 LIKE field2
Hvis du vil have mere at vide om at oprette kriterier til brug i en WHERE-delsætning, skal du se artiklen Eksempler på forespørgselskriterier.