Introduktion til Access SQL

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

Når du vil hente data fra en database, skal bede du om dataene ved hjælp af Structured Query Language eller SQL. SQL er et computersprog, der ligner engelsk, databaseprogrammer forstå. Hvis du ved SQL er vigtigt, fordi alle forespørgsel i Microsoft Access bruger SQL. Forstå, hvordan SQL fungerer kan hjælpe med at oprette bedre forespørgsler, og kan gøre det nemmere for dig at løse en forespørgsel, når det ikke returnere de resultater, du ønsker.

Bemærk: Du kan ikke redigere SQL til en webforespørgsel.

Denne artikel indeholder

Hvad er SQL?

Grundlæggende SQL-delsætninger: SELECT, FROM og WHERE

Sortere resultaterne: ORDER BY

Arbejde med opsummerede data: GROUP BY og HAVING

Kombinere forespørgselsresultater: UNION

Mere om delsætningen SELECT

Mere om delsætningen FROM

Mere om delsætningen WHERE

Hvad er SQL?

SQL er et computersprog til at arbejde med sæt af fakta og relationerne mellem disse. Relationsdatabase programmer, som Access bruger SQL til at arbejde med data. SQL er en international standard, som genkendes af standardiseringsorganer som ISO og ANSI som mange computersprog.

Du kan bruge SQL til at beskrive datasæt, der kan hjælpe dig med at besvare spørgsmål. Når du bruger SQL, skal du bruge den korrekte syntaks. Syntaksen er sæt regler, som elementerne i et sprog kombineres korrekt. SQL-syntaks er baseret på engelsk syntaksen og bruger mange af de samme elementer som Visual Basic for Applications (VBA) syntaks.

En simpel SQL-sætning, som henter en liste over efternavne på kontaktpersoner, hvis fornavn er Mary, kan se således ud:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Bemærk: SQL bruges ikke bare til at ændre data, men også til at oprette og ændre designet af databaseobjekter, f.eks. tabeller. Den del af SQL, der bruges til at oprette og ændre databaseobjekter, kaldes DDL (Data-Definition Language). Dette emne beskriver ikke DDL. Du kan få flere oplysninger i artiklen Oprette eller ændre tabeller eller indeks ved hjælp af en datadefinitionsforespørgsel.

SELECT-sætninger

Du kan beskrive et datasæt ved hjælp af SQL ved at skrive en SELECT-sætning. En SELECT-sætning indeholder en komplet beskrivelse af det datasæt, som du vil hente fra en database. Dette omfatter følgende:

  • Hvilke tabeller der indeholder dataene.

  • Hvordan relationerne mellem data fra forskellige kilder er.

  • Hvilke felter eller beregninger der vil generere dataene.

  • Kriterier, som data skal opfylde for at være inkluderet.

  • Om og hvordan resultaterne bliver sorteret.

SQL-delsætninger

Ligesom en sætning har en SQL-sætning også delsætninger. Hver delsætning udfører en funktion i SQL-sætningen. Nogle delsætninger er påkrævet i en SELECT-sætning. Følgende tabel viser de mest almindelige SQL-delsætninger.

SQL-delsætning

Hvad gør den

Krævet

SELECT

Viser de felter, der indeholder data, som kan have interesse.

Ja

FROM

Viser de tabeller, der indeholder de felter, som er angivet i SELECT-delsætningen.

Ja

WHERE

Angiver de feltkriterier, der skal opfyldes af hver post for at blive inkluderet i resultaterne.

Nej

ORDER BY

Angiver, hvordan resultaterne sorteres.

Nej

GROUP BY

I en SQL-sætning, der indeholder aggregeringsfunktioner, vises felter, som ikke er opsummeret i SELECT-delsætningen.

Kun hvis der findes sådanne felter

HAVING

I en SQL-sætning, der indeholder aggregeringsfunktioner, angives betingelser, der gælder for felter, som er opsummeret i SELECT-sætningen.

Nej

SQL-termer

Hver SQL-delsætning består af termer – som kan sammenlignes med taleudtryk. Følgende tabel viser de forskellige SQL-termtyper.

SQL-term

Sammenligneligt taleudtryk

Definition

Eksempel

id

navneord

Et navn, som kan bruges til at identificere et databaseobjekt, f.eks. navnet på et felt.

Customers.[Phone Number]

operator

verbum eller biord

Et nøgleord, der repræsenterer en handling eller ændrer en handling.

AS

konstant

navneord

En værdi, der ikke ændrer sig, f.eks. et tal eller NULL.

42

udtryk

tillægsord

En kombination af id'er, operatorer, konstanter og funktioner, der evalueres til en enkelt værdi.

>= Products.[Unit Price]

Toppen af siden

Grundlæggende SQL-delsætninger: SELECT, FROM og WHERE

Strukturen i en SQL-sætning ser generelt således ud:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Bemærkninger: 

  • Access ignorerer linjeskift i en SQL-sætning. Du bør dog overveje at bruge en linje til hver delsætning, så det er nemmere for dig selv og andre at læse dine SQL-sætninger.

  • Hver af SELECT-sætningerne slutter med et semikolon (;). Semikolontegnet kan blive vist til sidst i den sidste delsætning eller på en selvstændig linje til sidst i SQL-sætningen.

Et eksempel i Access

I det følgende illustreres det, hvordan en SQL-sætning med en simpel udvælgelsesforespørgsel kan se ud i Access:

SQL-objektfane, der viser en SELECT-sætning

1. SELECT-delsætning

2. FROM-delsætning

3. WHERE-delsætning

Dette eksempel på en SQL-sætning beskrives som følger: "Vælg de data, der er gemt i felterne ved navn E-mail Address og Company, i tabellen ved navn Contacts, og begræns søgningen til de poster, hvor værdien i feltet City er Seattle."

Lad os gennemgå alle delsætningerne i eksemplet for at se, hvordan SQL-syntaksen fungerer.

SELECT-delsætningen

SELECT [E-mail Address], Company

Dette er SELECT-delsætningen. Den består af en operator (SELECT) efterfulgt af to id'er ([E-Mail Address] og Company).

Hvis et id indeholder mellemrum eller specialtegn (f.eks. "E-Mail Address"), skal det omgives af kantparenteser.

En SELECT-delsætning behøver ikke at fortælle, hvilke tabeller der indeholder felterne, og den kan ikke angive nogen betingelser, som skal opfyldes, for at dataene bliver inkluderet.

SELECT-delsætningen vises altid foran FROM-delsætningen i en SELECT-sætning.

FROM-sætningen

FROM Contacts

Dette er FROM-delsætningen. Den består af en operator (FROM) efterfulgt af et id (Contacts).

En FROM-delsætning viser ikke de felter, der kan vælges.

WHERE-delsætningen

WHERE City="Seattle"

Dette er WHERE-delsætningen. Den består af en operator (WHERE) efterfulgt af et udtryk (City="Seattle").

Bemærk: I modsætning til delsætningerne SELECT og FROM er WHERE-delsætningen ikke et obligatorisk element i en SELECT-sætning.

Du kan udføre mange af de handlinger, SQL gør det muligt at udføre ved hjælp af SELECT, FROM og WHERE-delsætninger. Du kan finde flere oplysninger om, hvordan Du kan bruge disse delsætninger præsenteres i disse sektioner i slutningen af denne artikel:

Mere om delsætningen SELECT

Mere om delsætningen FROM

Mere om delsætningen WHERE

Sortere resultaterne: ORDER BY

Ligesom i Microsoft Office Excel giver Access dig mulighed for at sortere forespørgselsresultaterne i et dataark. Du kan også angive i forespørgslen, hvordan du vil sortere resultaterne, når forespørgslen køres, ved hjælp af en ORDER BY-delsætning. Hvis du bruger en ORDER BY-delsætning, er det den sidste delsætning i SQL-sætningen.

En ORDER BY-delsætning indeholder en liste over felter, som du vil bruge til sortering, i samme rækkefølge, som du vil bruge til at anvende sorteringshandlingerne.

Det kan f.eks. være, at du vil sortere resultaterne først efter værdien i feltet Company i faldende rækkefølge og – hvis der er poster med samme værdi for Company – derefter sortere efter værdierne i feltet E-Mail Address i stigende rækkefølge. ORDER BY-delsætningen ville i givet fald se nogenlunde således ud:

ORDER BY Company DESC, [E-mail Address]

Bemærk: Access sorterer som standard værdier i stigende rækkefølge (A-Z, mindste til største). Brug nøgleordet DESC til at sortere værdier i faldende rækkefølge i stedet.

Du kan få flere oplysninger om delsætningen ORDER BY under emnet ORDER BY-delsætningen.

Toppen af siden

Arbejde med opsummerede data: GROUP BY og HAVING

Undertiden vil du arbejde med opsummerede data, som det samlede salg i en måned eller de mest dyr elementer i et lager. For at gøre dette skal anvende du en samlefunktion til et felt i din SELECT-delsætning. Hvis du vil din forespørgsel for at få vist antallet af e-mail-adresser, der er angivet for hvert firma, kan din SELECT-delsætning for eksempel ligne følgende:

SELECT COUNT([E-mail Address]), Company

De aggregeringsfunktioner, du kan bruge, afhænger af den datatype, der findes i det felt eller udtryk, du vil bruge. Du kan få flere oplysninger om de tilgængelige aggregeringsfunktioner i artiklen SQL-aggregeringsfunktioner.

Angive felter, der ikke bruges i en aggregeringsfunktion: GROUP BY-delsætningen

Når du bruger aggregeringsfunktioner, skal du normalt også oprette en GROUP BY-delsætning. En GROUP BY-delsætning viser alle de felter, som du ikke anvender en aggregeringsfunktion på. Hvis du anvender aggregeringsfunktioner på alle felterne i en forespørgsel, behøver du ikke at oprette GROUP BY-delsætningen.

En GROUP BY-delsætning følger umiddelbart efter WHERE-delsætningen eller efter FROM-delsætningen, hvis der ikke er en WHERE-delsætning. En GROUP BY-delsætning viser felterne, som de ser ud i SELECT-delsætningen.

I forlængelse af det sidste eksempel vil GROUP BY-delsætningen f.eks. se nogenlunde således ud, hvis SELECT-delsætningen anvender en aggregeringsfunktion på [E-Mail Address], men ikke på Company:

GROUP BY Company

Du kan få flere oplysninger om delsætningen GROUP under emnet GROUP-delsætningen.

Begrænse aggregatværdierne ved hjælp af gruppen kriterier: den HAVING-delsætning

Hvis du vil bruge kriterier til at begrænse dine resultater, men det felt, hvorpå kriterierne skal anvendes, bruges i en aggregeringsfunktion, kan du ikke bruge en WHERE-delsætning. I stedet kan du bruge en HAVING-delsætning. En HAVING-delsætning fungerer på samme måde som en WHERE-delsætning, men bruges til samlede data.

Antag f.eks., at du bruger AVG-funktionen (som beregner en gennemsnitsværdi) på det første felt i din SELECT-delsætning:

SELECT COUNT([E-mail Address]), Company

Hvis forespørgslen skal begrænses til resultater, der er baseret på værdien af denne COUNT-funktion, kan du ikke bruge et kriterium for dette felt i WHERE-delsætningen. I stedet placerer du kriteriet i en HAVING-delsætning. Hvis forespørgslen f.eks. kun skal returnere rækker, hvis der er knyttet mere end én e-mail-adresse til virksomheden, kan HAVING-delsætningen se nogenlunde således ud:

HAVING COUNT([E-mail Address])>1

Bemærk: En forespørgsel kan have en WHERE-delsætning og en HAVING-delsætning – kriterier for felter, der ikke anvendes i en aggregeringsfunktion, skal placeres i WHERE-delsætningen, og kriterier, der bruges sammen med aggregeringsfunktioner, skal placeres i HAVING-delsætningen.

Du kan få flere oplysninger om delsætningen HAVING under emnet HAVING-delsætningen.

Toppen af siden

Kombinere forespørgselsresultater: UNION

Hvis du vil gennemse alle de data, der bliver returneret af flere lignende udvælgelsesforespørgsler som et samlet sæt, kan du bruge operatoren UNION.

Operatoren UNION giver dig mulighed for at samle to SELECT-sætninger i en sætning. De SELECT-sætninger, som du samler, skal have det samme antal outputfelter i samme rækkefølge og med samme eller kompatible datatyper. Når du kører forespørgslen, samles dataene fra hvert sæt tilsvarende felter i et enkelt outputfelt, så outputtet fra forespørgslen har det samme antal felter som hver af udvælgelsessætningerne.

Bemærk: Når der oprettes en foreningsforespørgsel, er datatyperne Tal og Tekst kompatible.

Når du bruger operatoren UNION, kan du også angive, om forespørgselsresultaterne skal indeholde identiske rækker, hvis der findes nogen, ved hjælp af nøgleordet ALL.

Den grundlæggende SQL-syntaks i en foreningsforespørgsel, der samler to SELECT-sætninger, er som følger:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Antag, at du har en tabel med navnet Produkter og en anden tabel med navnet Tjenester. Begge tabeller har felter, der indeholder navnet på produktet eller tjenesten, prisen, garantien eller garantiens tilgængelighed samt en angivelse af, om du er den eneste, der tilbyder produktet eller tjenesten. Selvom tabellen Produkter viser garantioplysninger, og tabellen Tjenester viser garantioplysninger, er de grundlæggende oplysninger de samme (angivelse af, hvorvidt et bestemt produkt eller en bestemt tjeneste leveres med en kvalitetsgaranti). Du kan bruge en foreningsforespørgsel, f.eks. den følgende forespørgsel, til at samle de fire felter fra de to tabeller:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Du kan få flere oplysninger om, hvordan du kan samle SELECT-sætninger ved hjælp af operatoren UNION, i artiklen Kombinere resultaterne af flere udvælgelsesforespørgsler ved hjælp af en foreningsforespørgsel.

Toppen af siden

Mere om delsætningen SELECT

I en SELECT-sætningen viser SELECT-delsætningen de felter, der indeholder data du vil bruge.

Bruge kantede parenteser til at indsætte identifikatorer

Du kan bruge kantede parenteser til at indsætte navnet på et felt i en SELECT-delsætning. Hvis navnet ikke indeholder nogen mellemrum eller specialtegn (f.eks. tegnsætningstegn), er de firkantede parenteser valgfrie. Hvis navnet indeholder mellemrum eller specialtegn, skal du bruge de firkantede parenteser.

Tip: Et navn, der indeholder mellemrum er nemmere at læse og kan du spare tid, når du udformer formularer og rapporter, men kan ender du Skriv mere, når du skriver SQL-sætninger. Du bør overveje denne oplysning, når du navngiver objekter i databasen.

Hvis SQL-sætningen har to eller flere felter med det samme navn, skal du føje navnet på datakilden for hvert felt til feltnavnet i SELECT-delsætningen. Du kan bruge det samme navn til datakilden, som du bruger i FROM-delsætningen.

Vælge alle felter

Når du vil medtage alle felterne fra en datakilde, kan du enten få vist alle felterne individuelt i SELECT-delsætningen, eller du kan bruge jokertegnet stjerne (*). Når du bruger stjerne, fastsætter Access på det tidspunkt, hvor forespørgslen køres, hvilke felter datakilden indeholder, og inkluderer alle disse felter i forespørgslen. Dette er med til at sikre, at forespørgslen hele tiden er helt opdateret, hvis der bliver føjet nye felter til datakilden.

Du kan bruge stjernen sammen med en eller flere datakilder i en SQL-sætning. Hvis du vil bruge stjernen, og der er flere datakilder, skal du indsætte datakildens navn sammen med stjernen, så Access kan fastsætte den datakilde, som alle felter skal medtages fra.

Antag f.eks., at du vil vælge alle felterne i tabellen Orders, men kun e-mail-adressen fra tabellen Contacts. I givet fald vil SELECT-delsætningen se nogenlunde således ud:

SELECT Orders.*, Contacts.[E-mail Address]

Bemærk: Hold styr på, hvornår du bruger en stjerne. Hvis der føjes nye felter til datakilden på et senere tidspunkt, og du ikke har taget højde for dem, kan forespørgselsresultaterne komme til at se anderledes ud, end du havde forestillet dig.

Vælge bestemte værdier

Hvis du ved, at sætningen vil vælge identiske data, og du hellere vil nøjes med at se bestemte værdier, kan du bruge nøgleordet DISTINCT i SELECT-delsætningen. Antag f.eks., at dine kunder hver især repræsenterer flere forskellige interesser, og nogle af disse har samme telefonnummer. Hvis du vil sikre dig, at du kun får vist hvert telefonnummer én gang, kan du angive en SELECT-delsætning, der ser således ud:

SELECT DISTINCT [txtCustomerPhone]

Bruge erstatningsnavne til felter eller udtryk: Nøgleordet AS

Du kan ændre den etiket, der vises for et hvilket som helst felt i dataarkvisningen, ved at bruge nøgleordet AS og et feltalias i SELECT-delsætningen. Et feltalias er et navn, som du tildeler til et felt i en forespørgsel for at gøre det nemmere at læse resultaterne. Hvis du f.eks. vil vælge data fra et felt med navnet txtCustPhone, og feltet indeholder telefonnumre til kunder, kan du gøre det nemmere at læse resultaterne ved at bruge et feltalias i SELECT-sætningen på følgende måde:

SELECT [txtCustPhone] AS [Customer Phone]

Bemærk: Du skal bruge et feltalias, når du bruger et udtryk i en SELECT-delsætning.

Vælge ved hjælp af et udtryk

Nogle gange, du vil se på beregninger, baseret på dine data eller hente kun en del af et felts datatype. For antage, at du vil returnere det år, der er født kunder, baseret på dataene i feltet Fødselsdato i databasen. Din SELECT-delsætning kan minde om følgende:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Dette udtryk består af den funktionen DatePart og to argumenter – "åååå" (en konstant), og [BirthDate] (et id).

Du kan bruge et hvilket som helst gyldigt udtryk som felt, hvis outputtet fra udtrykket er en enkelt værdi, når den får en enkelt inputværdi.

Toppen af siden

Mere om delsætningen FROM

I en SELECT-sætning angiver delsætningen FROM de tabeller eller forespørgsler, der indeholder de data, som SELECT-delsætningen vil bruge.

Antag, at du gerne vil have vist telefonnummeret for en bestemt kunde. Hvis vi antager, at den tabel, der indeholder det felt, som indeholder disse data, hedder tblCustomer, vil FROM-delsætningen se nogenlunde således ud:

FROM tblCustomer

Bruge kantede parenteser til at indsætte identifikatorer

Du kan bruge kantede parenteser til at indsætte navnet. Hvis navnet ikke indeholder nogen mellemrum eller specialtegn (f.eks. tegnsætningstegn), er de firkantede parenteser valgfrie. Hvis navnet indeholder mellemrum eller specialtegn, skal du bruge de firkantede parenteser.

Tip: Et navn, der indeholder mellemrum er nemmere at læse og kan du spare tid, når du udformer formularer og rapporter, men kan ender du Skriv mere, når du skriver SQL-sætninger. Du bør overveje denne oplysning, når du navngiver objekter i databasen.

Bruge erstatningsnavne til datakilder

Du kan bruge et andet navn til at referere til en datakilde i en SELECT-sætning ved hjælp af et tabelalias i FROM-delsætningen. Et tabelalias er et navn, som du knytter til en datakilde i en forespørgsel, når du bruger et udtryk som datakilde, eller som kan gøre det nemmere at skrive og læse SQL-sætningen. Dette kan især være nyttigt, hvis navnet på datakilden er langt eller svært at skrive, i særdeleshed når der er flere felter, der har samme navn i forskellige tabeller.

Hvis du f.eks. vil vælge data fra to felter, som begge hedder ID, hvoraf den ene kommer fra tabellen tblCustomer, og den anden kommer fra tabellen tblOrder, kan SELECT-delsætningen se således ud:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Ved hjælp af tabelaliasser i FROM-delsætningen kan du gøre forespørgslen nemmere at skrive. FROM-delsætningen med tabelaliasser kan se således ud:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Derefter kan du bruge disse tabelaliasser i SELECT-delsætningen på følgende måde:

SELECT [C].[ID], [O].[ID]

Bemærk: Når du bruger et tabelalias, kan du referere til datakilden i SQL-sætningen ved hjælp af aliasset eller ved at bruge hele navnet på datakilden.

Samle relaterede data

Når du skal bruge en metode til at samle postsæt fra to datakilder i et forespørgselsresultat, kan du oprette en joinforbindelse. En joinforbindelse er en SQL-handling, der angiver relationen mellem to datakilder, og om data fra den ene kilde skal inkluderes, hvis der ikke er nogen tilsvarende data fra den anden kilde.

Du kan samle oplysningerne fra to datakilder ved at udføre en joinforbindelseshandling på det felt, som de har til fælles. Når de gemte værdier i dette felt stemmer overens, vil dataene fra posterne blive samlet i resultaterne.

Ud over at samle data kan du også bruge en joinforbindelse til at angive, om du vil inkludere poster fra hver af tabellerne, hvis der ikke er nogen tilsvarende post i den relaterede tabel.

Antag f.eks., du vil bruge data fra to tabeller i en forespørgsel: tblCustomer og tblOrder. De to tabeller begge har et felt, kunde-id, der identificerer et kunde. Hver post i tabellen tblCustomer kan have en eller flere tilsvarende poster i tabellen tblOrder, og de tilsvarende værdier kan bestemmes af værdierne i feltet kunde-id.

Hvis du vil samle tabellerne, så forespørgslen samler posterne fra tabellerne, men udelader poster fra begge tabeller, hvis der ikke findes en tilsvarende post i den anden tabel, kan FROM-delsætningen se således ud (linjeskift er indsat her for at gøre det mere overskueligt):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

I Microsoft Office Access er joinforbindelser angivet i FROM-delsætningen i en SELECT-sætning. Der findes to typer joinforbindelser: indre og ydre joinforbindelser. Disse to typer joinforbindelser forklares i de næste afsnit.

Indre joinforbindelser

Indre joinforbindelser er den mest almindelige type. Når der køres en forespørgsel med en indre joinforbindelse, er de eneste poster, der bliver inkluderet i forespørgselsresultaterne, de poster, hvor der findes en fælles værdi i begge de tilknyttede tabeller.

En indre joinforbindelse har følgende syntaks (linjeskift er indsat her for at gøre det mere overskueligt):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Følgende tabel beskriver de forskellige dele af en INNER JOIN-handling.

Del

Beskrivelse

Tabel1, Tabel2

Navnene på de tabeller, som posterne skal kombineres fra.

Felt1, Felt2

Navnene på de felter, der skal joinforbindes. Hvis de ikke er numeriske, skal de have samme datatype og indeholde den samme slags data, men de behøver ikke have samme navn.

sammenligningsoperator

En relationel sammenligningsoperator: "=," "<," ">," "<=," ">=" eller "<>."

Ydre joinforbindelser

Ydre joinforbindelser minder om indre joinforbindelser, fordi de giver en forespørgsel besked om, hvordan oplysningerne fra de to kilder skal samles. De er forskellige, idet de også angiver, om der skal inkluderes data, når der ikke findes nogen fælles værdi. Ydre joinforbindelser er retningsbestemte: du kan angive, om du vil inkludere alle posterne fra den første datakilde, der er angivet i joinforbindelsen (kaldes venstre joinforbindelse), eller om alle posterne fra den anden datakilde skal inkluderes i joinforbindelsen (kaldes højre joinforbindelse).

En ydre joinforbindelse har følgende syntaks:

FRA Tabel1 [venstre | RIGHT] JOIN Tabel2
ON Tabel1.felt1sammenligningsoperator Tabel2.Felt2

Følgende tabel beskriver de forskellige dele i LEFT JOIN- og RIGHT JOIN-handlingerne.

Del

Beskrivelse

Tabel1, Tabel2

Navnene på de tabeller, som posterne skal kombineres fra.

Felt1, Felt2

Navnene på de felter, der er sammenføjet. Felterne skal være den samme datatype og indeholde den samme slags data, men de behøver ikke at have samme navn.

sammenligningsoperator

En relationel sammenligningsoperator: "=," "<," ">," "<=," ">=" eller "<>."

Du kan finde flere oplysninger om joinforbindelser i artiklen Joinforbinde tabeller og forespørgsler.

Toppen af siden

Mere om delsætningen WHERE

Når du vil bruge data til at begrænse antallet poster, der returneres i en forespørgsel, kan du bruge forespørgsel kriterier i WHERE-delsætningen i en SELECT-sætning. Et forespørgselskriterium ligner en formel – det er en streng, der kan bestå af feltreferencer, operatorer og konstanter. Forespørgselskriterier er en slags udtryk.

I nedenstående tabel vises nogle eksempelkriterier med en forklaring på, hvordan de fungerer.

Kriterier

Beskrivelse

>25 and <50

Dette kriterium anvendes i et talfelt som f.eks. Pris eller EnhederPåLager. Det medtager kun de poster, hvor feltet indeholder en værdi, der er større end 25 og mindre end 50.

DateDiff ("yyyy", [BirthDate], Date()) > 30

Dette kriterium anvendes i et dato/klokkeslætsfelt som f.eks. BirthDate. Det er kun poster, hvor antallet af år mellem en persons fødselsdato og dags dato er større end 30, der medtages i forespørgselsresultatet.

Is Null

Dette kriterium kan anvendes på enhver felttype for at få vist poster, hvor feltværdien er Null.

Som du kan se i tabellen ovenfor, kan kriterier være vidt forskellige fra hinanden afhængigt af datatypen i det felt, kriterierne anvendes på, og dine specifikke krav. Nogle kriterier er enkle og bruger basisoperatorer og -konstanter. Andre er komplekse og bruger funktioner, specielle operatorer og feltreferencer.

Vigtigt: Hvis et felt bruges sammen med en aggregeringsfunktion, kan du ikke angive kriterier for dette felt i en WHERE-delsætning. I stedet kan du bruge en HAVING-delsætning til at angive kriterier for samlede felter. Du kan få flere oplysninger i afsnittet Arbejde med opsummerede data: GROUP BY og HAVING.

Syntaks i WHERE-delsætning

En WHERE-delsætning har følgende grundlæggende syntaks:

WHERE field = criterion

Antag f.eks., at du vil have vist telefonnummeret til 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 ønskede telefonnummer. Hvis efternavnene er gemt i et felt med navnet LastName, kan WHERE-delsætningen se således ud:

WHERE [LastName]='Bagel'

Bemærk: Du behøver ikke at basere kriterierne i WHERE-delsætning for værdier. Du kan bruge andre sammenligningsoperatorer, som større end (>) eller mindre end (<). For eksempel hvor [Pris] > 100.

Bruge WHERE-delsætningen til at samle datakilder

Nogle gange kan det være relevant at samle datakilder, der er baseret på felter, som har matchende data, men forskellige datatyper. Et felt i en tabel kan f.eks. have datatypen Tal, og du vil sammenligne dette felt med et felt i en anden tabel, som har datatypen Tekst.

Du kan ikke oprette en joinforbindelse mellem felter, der har forskellige datatyper. Hvis du vil samle data fra to datakilder baseret på værdier i felter med forskellige datatyper, kan du oprette en WHERE-delsætning, som bruger det ene felt som kriterium for det 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). I givet fald vil WHERE-delsætningen se således ud:

WHERE field1 LIKE field2

Du kan få flere oplysninger om, hvordan du kan oprette kriterier til brug i en WHERE-delsætning, i artiklen Eksempler på forespørgselskriterier.

Toppen af siden

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×