Innføring i SQL for Access

Obs!:  Vi ønsker å gi deg det nyeste hjelpeinnholdet så raskt som mulig, på ditt eget språk. Denne siden er oversatt gjennom automatisering og kan inneholde grammatiske feil eller unøyaktigheter. Formålet vårt er at innholdet skal være nyttig for deg. Kan du fortelle oss om informasjonen var nyttig for deg nederst på denne siden? Her er den engelske artikkelen for enkel referanse.

Når du vil hente data fra en database, ber du om dataene ved hjelp av Structured Query Language eller SQL. SQL er et språk på datamaskinen som likner engelsk databaseprogrammer forstår. Hvis du kjenner SQL er viktig for hver spørring i Microsoft Access bruker SQL. Forstå hvordan SQL fungerer, kan hjelpe deg med å opprette bedre spørringer, og du kan gjøre det enklere for deg å løse en spørring når den ikke returnerer ønskede resultater.

Obs!: Du kan ikke redigere SQL for en webspørring.

I denne artikkelen

Hva er SQL?

Grunnleggende SQL-setningsdeler: SELECT, FROM, og hvor

Sortere resultatene: REKKEFØLGE etter

Arbeide med summerte data: GROUP BY- og HAVING

Kombinere spørringsresultater: UNION

Mer om SELECT-setningsdelen

Mer om FROM-setningsdelen

Mer om WHERE-setningsdelen

Hva er SQL?

SQL er et språk som datamaskinen for å arbeide med sett med fakta og relasjonene mellom dem. Relasjonsdatabase programmer, for eksempel Access bruker SQL for å arbeide med data. Mange språk på datamaskinen, for eksempel er SQL en internasjonal standard som gjenkjennes i for eksempel ISO og ANSI-standardene brødtekst.

Du kan bruke SQL til å beskrive sett med data som kan hjelpe deg med å besvare spørsmål. Når du bruker SQL, må du bruke riktig syntaks. Syntaksen for er sett med regler som kombineres riktig elementene i et annet språk. SQL-syntaks er basert på engelsk syntaksen, og bruker mange av de samme elementene som Visual Basic for Applications (VBA)-syntaksen.

For eksempel en enkel SQL-setning som henter en liste over etternavn for kontakter som har fornavn er Mary kan se slik ut:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Obs!: SQL brukes ikke bare for å endre data, men også for å opprette og endre utformingen av databaseobjekter, for eksempel tabeller. Delen av SQL som brukes til å opprette og endre databaseobjekter kalles data datadefinisjonsspråk (DDL). Dette emnet dekker ikke DDL. Hvis du vil ha mer informasjon, kan du se artikkelen Opprett eller endre tabeller eller indekser ved hjelp av en datadefinisjonsspørring.

SELECT-setninger

For å beskrive et sett med data ved hjelp av SQL, kan du skrive en SELECT-setning. En SELECT-setning inneholder en utfyllende beskrivelse av et sett med data som du vil laste ned fra en database. Dette omfatter følgende:

  • Hvilke tabeller inneholder dataene.

  • Hvordan relaterte data fra ulike kilder.

  • Hvilke felt eller beregninger produsere dataene.

  • Vilkår som må samsvare med for å være inkludert.

  • Om og hvordan resultatene skal sorteres.

SQL-setninger

Som en setning har en SQL-setning setningsdeler. Hver-setningsdel utfører en funksjon for SQL-setningen. Noen setninger som kreves i en SELECT-setning. Tabellen nedenfor viser de mest vanlige SQL-setningene.

SQL-setningsdel

Formelresultat

Obligatorisk

SELECT

Viser en liste over feltene som inneholder data av interesse.

Ja

FROM

Viser en liste over tabellene som inneholder feltene som er oppført i SELECT-setningsdelen.

Ja

WHERE

Angir feltvilkår som må oppfylles av hver post som skal inkluderes i resultatene.

Nei

ORDER BY

Angir hvordan resultatene skal sorteres.

Nei

GROUP BY

I SQL-setninger som inneholder mengdefunksjoner, viser denne setningsdelen felt som det ikke er et sammendrag av i SELECT-setningsdelen.

Bare hvis det finnes slike felt

HAVING

I SQL-setninger som inneholder mengdefunksjoner, spesifiserer denne setningsdelen betingelsene som gjelder felt som det er sammendrag av i SELECT-setningen.

Nei

SQL-vilkår

Hver SQL-setningen består av vilkårene – sammenlignes med deler av tale. Tabellen nedenfor viser typer SQL termer.

SQL-uttrykk

Sammenlignes del av tale

Definisjon

Eksempel

identifikator

substantiv

Et navn som du bruker til å identifisere et databaseobjekt, for eksempel navnet på et felt.

Kunder. [Telefonnummer]

operator

verb eller adverb

Et nøkkelord som representerer en handling eller endrer en handling

AS

konstant

substantiv

En verdi som ikke endres, for eksempel et tall eller NULL

42

uttrykk

adjektiv

En kombinasjon av identifikatorer, operatorer, konstanter og funksjoner som evalueres til én enkelt verdi

> = produkter.[Enhetspris]

Til toppen av siden

Grunnleggende SQL-setningsdeler: SELECT, FROM, og hvor

En SQL-setning tar det generelle formatet:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Obs!: 

  • Access ignorerer linjeskift i en SQL-setning. Imidlertid vurdere å bruke en linje for hver-setningsdel til å forbedre lesbarheten for SQL-setninger for deg selv og andre.

  • Hver SELECT-setning slutter med et semikolon (;). Semikolondelt kan vises på slutten av den siste setningsdelen eller på en linje alene på slutten av SQL-setningen.

Et eksempel i Access

Følgende illustrerer hvordan en SQL-setningen for en enkel utvalgsspørring kan se ut i Access:

SQL-objektkategorien viser en SELECT-setning

1. SELECT-setningsdelen

2. FROM-setningsdelen

3. WHERE-setningsdelen

Dette eksemplet SQL-setningen leser "Merk dataene som er lagret i felt kalt e-postadresse og firma fra tabellen med navnet kontakter, spesielt postene der verdien for feltet By er Seattle".

La oss se på eksemplet, én om gangen, til å se hvordan fungerer SQL-syntaks-setningsdelen.

SELECT-setningsdelen

SELECT [E-mail Address], Company

Dette er SELECT-setningsdelen. Det består av en operatør (Velg) etterfulgt av to identifikatorer ([e-postadresse] og firma).

Hvis en identifikator inneholder mellomrom eller spesialtegn (for eksempel "e-postadressen"), må det stå i hakeparenteser.

En SELECT-setningsdel har ikke å si hvilke tabeller som inneholder feltene, og den kan ikke angi betingelsene som må oppfylles av dataene som skal inkluderes.

SELECT-setningsdelen vises alltid foran FROM-setningsdelen i en SELECT-setning.

FROM-setningsdelen

FROM Contacts

Dette er FROM-setningsdelen. Det består av en operatør (fra) etterfulgt av en identifikator (kontakter).

En FROM-setningsdel inneholder ikke feltene som skal velges.

WHERE-setningsdelen

WHERE City="Seattle"

Dette er WHERE-setningsdelen. Det består av en operatør (der) etterfulgt av et uttrykk (by = "Seattle").

Obs!: I motsetning til dialogboksen Velg og fra setninger er WHERE-setningsdelen ikke et obligatorisk element i en SELECT-setning.

Du kan utføre mange av handlingene som SQL kan du gjøre ved å bruke SELECT, FROM og WHERE-setningsdeler. Mer informasjon om hvordan du bruker disse setningsdeler presenteres i disse delene på slutten av denne artikkelen:

Mer om SELECT-setningsdelen

Mer om FROM-setningsdelen

Mer om WHERE-setningsdelen

Sortere resultatene: REKKEFØLGE etter

Access kan du sortere spørringsresultatene i et dataark som Microsoft Office Excel. Du kan også angi i spørringen hvordan du vil sortere resultatene når spørringen kjøres, ved hjelp av en ORDER BY-setningsdelen. Hvis du bruker en ORDER BY-setningsdel, er det den siste setningsdelen i SQL-setningen.

ORDER BY-setningsdel inneholder en liste over feltene som du vil bruke til sortering, i samme rekkefølge som du vil bruke sorteringsoperasjoner.

Anta for eksempel at du vil bruke resultatene sortert etter firma-feltet i synkende rekkefølge, og, hvis det finnes poster med samme verdi for firmaet, sortert ved siden av verdiene i feltet e-postadressen i stigende rekkefølge. Din ORDER BY-setningsdel kan ligne på følgende:

ORDER BY Company DESC, [E-mail Address]

Obs!: Som standard sorteres verdiene i stigende rekkefølge (A-Å, minste til største). Bruk nøkkelordet DESC for å sortere verdiene i synkende rekkefølge i stedet.

Hvis du vil ha mer informasjon om setningsdelen ORDER BY, kan du se emnet ORDER BY-setningsdelen.

Til toppen av siden

Arbeide med summerte data: GROUP BY- og HAVING

Noen ganger vil du arbeide med summerte data, for eksempel totalt salg på en måned eller mest dyr elementene i en lagerbeholdning. Hvis du vil gjøre dette, bruker du en mengdefunksjon på et felt i SELECT-setningsdelen. Hvis du vil spørringen for å vise antallet for e-postadressene som er oppført for hvert firma, kan for eksempel SELECT-setningsdelen ligne på følgende:

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

Mengdefunksjoner som du kan bruke avhenger av hvilken type data som er i feltet eller uttrykket du vil bruke. Hvis du vil ha mer informasjon om de tilgjengelige mengdefunksjonene, kan du se artikkelen SQL-mengdefunksjoner.

Angi felt som ikke brukes i en mengdefunksjon: The GROUP BY-setningsdel

Når du bruker mengdefunksjoner, må vanligvis du også opprette en GROUP BY-setningsdelen. Setningsdelen GROUP BY viser alle felt du ikke bruker en mengdefunksjon. Hvis du bruker mengdefunksjoner på alle feltene i en spørring, har du ikke opprette GROUP BY-setningsdelen.

En GROUP BY-setningsdel etterfølger umiddelbart WHERE-setningsdelen eller FROM-setningsdelen hvis det er ingen WHERE-setningsdelen. Setningsdelen GROUP BY viser feltene slik de vises i SELECT-setningsdelen.

Fortsette eksemplet ovenfor, for eksempel hvis SELECT-setningsdelen gjelder en mengdefunksjon for [e-postadresse], men ikke til firmaet, i GROUP BY-setningsdelen vil ligne på følgende:

GROUP BY Company

Hvis du vil ha mer informasjon om setningsdelen GROUP BY, kan du se emnet GROUP BY-setningsdelen.

Begrense mengdeverdier ved hjelp av gruppen vilkår: på HAVING-setningsdel

Hvis du vil bruke vilkår til å begrense resultatene, men feltet du vil bruke vilkår til å brukes i en mengdefunksjon, kan du ikke bruke en WHERE-setning. I stedet kan bruke du en HAVING-setningsdel. En HAVING-setningsdel fungerer som en WHERE-setningsdel, men brukes for samlede data.

Hvis du for eksempel anta at du bruker funksjonen AVG (som beregner en gjennomsnittsverdi) med det første feltet i SELECT-setningsdelen:

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

Hvis du vil at spørringen til å begrense resultatene basert på verdien for antall funksjonen, kan du ikke bruke et vilkår for dette feltet i WHERE-setningsdelen. I stedet kan plassere du vilkårene i en HAVING-setningsdel. Hvis du bare vil at spørringen skal returnere rader Hvis det finnes mer enn én e-postadresser som er knyttet til firmaet, kan for eksempel HAVING-setningsdelen ligne på følgende:

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

Obs!: En spørring kan ha en WHERE-setningsdel og en HAVING-setningsdel, vilkår for feltene som ikke brukes i en mengdefunksjon gå inn i WHERE-setningsdelen, og vilkår for feltene som brukes med mengdefunksjoner i HAVING-setningsdelen.

Hvis du vil ha mer informasjon om HAVING-setningsdelen, kan du se emnet HAVING-setningsdel.

Til toppen av siden

Kombinere spørringsresultater: UNION

Når du vil se gjennom alle dataene som returneres av flere lignende utvalgsspørringer sammen, som et kombinert sett, bruker du UNION-operatoren.

UNION-operatoren kan du kombinere to SELECT-setninger til én. SELECT-setninger som du kombinere må ha samme antall utdatafeltene, i samme rekkefølge, og med samme eller kompatible datatyper. Når du kjører spørringen, kombineres data fra hvert sett med tilsvarende felt i ett utdatafelt, slik at resultatet av spørringen har samme antall felt som hver av select-setningene.

Obs!: For unionsspørringer er datatypene Tall og Tekst kompatible.

Når du bruker UNION-operatoren, kan du også angi om spørringsresultatene skal ta med duplikatrader, hvis noen finnes, ved hjelp av alle nøkkelordet.

Den grunnleggende SQL-syntaksen for en unionsspørring som kombinerer to SELECT-setninger er som følger:

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

Hvis du for eksempel anta at du har en tabell kalt produkter og en annen tabell kalt tjenester. Begge tabellene har felt som inneholder navnet på produktet eller tjenesten, prisen, garanti eller garantere tilgjengelighet, og om du tilbyr produktet eller tjenesten utelukkende. Selv om produkter-tabellen lagrer garantiinformasjon og tjenester tabell butikker garantere informasjon, er den samme (om et bestemt produkt eller tjeneste inneholder et løfte om kvalitet) grunnleggende informasjon. Du kan bruke en unionsspørring, for eksempel følgende, til å kombinere de fire feltene fra to tabeller:

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

Hvis du vil ha mer informasjon om hvordan du kan kombinere SELECT-setninger ved hjelp av UNION-operatoren, kan du se artikkelen kombinere resultatene av flere utvalgsspørringer ved å bruke en unionsspørring.

Til toppen av siden

Mer om SELECT-setningsdelen

SELECT-setningsdelen viser feltene som inneholder data i en SELECT-setning du vil bruke.

Bruk hakeparenteser til å omslutte identifikatorer

Du kan bruke hakeparenteser til å omslutte navnet på et felt i en SELECT-setningsdelen. Hvis navnet ikke inneholder mellomrom eller spesialtegn (for eksempel skilletegn), er hakeparentes valgfrie. Hvis navnet inneholder mellomrom eller spesialtegn, må du bruke hakeparentesene.

Tips!: Et navn som inneholder mellomrom blir enklere å lese og kan du spare tid når du utformer skjemaer og rapporter, men kan ende opp når du skriver inn mer når du skriver SQL-setninger. Når du navn til objekter i databasen, bør du vurdere denne fakultet.

Hvis SQL-uttrykket har to eller flere felt som har samme navn, må du legge til navnet på datakilden for hvert felt i feltnavnet i SELECT-setningen. Du kan bruke samme navn for datakilden som du bruker i FROM-setningen.

Velg alle felt

Når du vil inkludere alle feltene fra en datakilde, kan du enten vise alle feltene i SELECT-setningen enkeltvis, eller du kan bruke jokertegnet stjerne (*). Når du bruker stjernesymbolet, bestemmer Access når spørringen kjører hvilke felt datakilden inneholder og inkluderer alle de feltene i spørringen. Dette bidrar til å sørge for at spørringen holder seg oppdatert om nye felt er blitt lagt til i datakilden.

Du kan bruke stjernesymbolet med én eller flere datakilder i et SQL-uttrykk. Hvis du bruker stjernesymbolet og det er flere datakilder, må du inkludere navnet på datakilden sammen med stjernesymbolet, slik at Access kan bestemme hvilken datakilde alle feltene skal hentes fra.

Anta for eksempel at du vil velge alle feltene fra Ordrer-tabellen, men bare e-postadressene fra Kontakter-tabellen. Din SELECT-setning kan se ut som dette:

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

Obs!: Hold oversikt over når du bruker stjernesymbolet. Hvis nye felt senere blir lagt til i datakilden, og du ikke har planer for dem, slår kanskje ikke spørringsresultatene ut som du ønsker.

Velg bestemte verdier

Hvis du vet at uttrykket vil velge overflødige data, og du heller vil vise bare bestemte verdier, kan du bruke nøkkelordet DISTINCT i SELECT-setningen. Anta for eksempel at hver kunde representerer flere forskjellige interesser der noen bruker samme telefonnummer. Hvis du ønsker å sørge for at du bare ser hvert telefonnummer én gang, vises SELECT-setningen slik:

SELECT DISTINCT [txtCustomerPhone]

Bruk erstatningsnavn for felt eller uttrykk: AS-nøkkelordet

Du kan endre etiketten som vises for et felt i dataarkvisning ved å bruke AS-nøkkelordet og et feltalias i SELECT-setningen. Et feltalias er et navn som du tilordner til et felt i en spørring for å gjøre det enklere å lese resultatene. Hvis du vil velge data fra et felt kalt txtCustPhone og feltet inneholder telefonnumre for kundene, kan du for eksempel forbedre lesbarheten for resultatene ved hjelp av et feltalias i SELECT-uttrykket, slik som dette:

SELECT [txtCustPhone] AS [Customer Phone]

Obs!: Du må bruke et feltalias når du bruker et uttrykk i en SELECT-setning.

Velg ved å bruke et uttrykk

Noen ganger vil du se på beregninger basert på dataene, eller henter bare en del av datatypen for et felt. Hvis du for eksempel anta at du vil returnere året som ble født kunder, basert på data i Fødselsdato-feltet i databasen. SELECT-setningsdelen kan ligne på følgende:

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

Dette uttrykket består av den DatePart , funksjon og to argumenter – "yyyy" (en konstant), og [BirthDate] (en identifikator).

Du kan bruke et hvilket som helst gyldig uttrykk som et felt hvis uttrykket produserer en enkel utdataverdi når det blir gitt en enkel inndataverdi.

Til toppen av siden

Mer om FROM-setningsdelen

FROM-setningsdelen angir tabellene eller spørringene som inneholder dataene som SELECT-setningsdelen skal bruke, i en SELECT-setning.

La oss si at du trenger telefonnummeret til en bestemt kunde. Hvis vi sier at tabellen som inneholder feltet med disse dataene, heter tblKunde, vil FROM-setningsdelen se omtrent slik ut:

FROM tblCustomer

Bruk hakeparenteser til å omslutte identifikatorer

Du kan bruke hakeparenteser til å omslutte navnet. Hvis navnet ikke inneholder mellomrom eller spesialtegn (for eksempel punktum), er hakeparenteser valgfritt. Hvis navnet inneholder mellomrom eller spesialtegn, må du bruke hakeparentesene.

Tips!: Et navn som inneholder mellomrom blir enklere å lese og kan du spare tid når du utformer skjemaer og rapporter, men kan ende opp når du skriver inn mer når du skriver SQL-setninger. Når du navn til objekter i databasen, bør du vurdere denne fakultet.

Bruke alternative navn på datakilder

Du kan bruke et annet navn til å referere til en datakilde i en SELECT-setning ved å bruke et tabell-postalias i FROM-setningsdelen. En tabellalias er et navn som tilordnes til en datakilde i en spørring når du bruker et uttrykk som datakilde, eller gjøre det enklere å skrive og lese SQL-setningen. Dette kan være spesielt nyttig hvis navnet på datakilden er lang eller vanskelig å skrive inn, spesielt når det er flere felt som har samme navn fra forskjellige tabeller.

Hvis du for eksempel vil velge data fra to felt som begge heter ID, og det ene kommer fra tabellen tblKunde og det andre fra tabellen tblOrdre, kan SELECT-setningsdelen se omtrent slik ut:

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

Ved å bruke aliaser fra FROM-setningsdelen kan du gjøre spørringen lettere å taste inn. FROM-setningsdelen med tabellaliaser kan se omtrent slik ut:

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

Deretter kan du bruke disse tabellaliasene i SELECT-setningsdelen på følgende måte:

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

Obs!: Når du bruker et tabellalias, kan du referere til datakilden i SQL-setningen ved hjelp av aliaset eller ved hjelp av det fullstendige navnet på datakilden.

Sammenføye relaterte data

Når du må kombinere poster fra to datakilder til enkeltposter i et spørringsresultat, kan du foreta en sammenføyning. En sammenføyning er en SQL-operasjon som angir hvordan to datakilder er relatert, og om data fra én kilde bør inkluderes hvis det ikke finnes noen samsvarende data fra den andre kilden.

Du kombinerer informasjonen fra to datakilder ved å utføre en sammenføyningsoperasjon på feltet de har til felles. Når verdiene som er lagret i dette feltet samsvarer, er dataene fra postene kombinert i resultatene.

I tillegg til å kombinere data, brukes en sammenføyning også til å angi om poster fra den ene av tabellene skal inkluderes hvis det ikke finnes noen samsvarende post i den andre tabellen.

Hvis du for eksempel anta at du vil bruke data fra to tabeller i en spørring: Tblkunde og Tblordre. De to tabellene begge har et felt, KundeID som identifiserer en kunde. Alle postene i tabellen Tblkunde kan ha én eller flere tilsvarende poster i tabellen Tblordre, og de tilsvarende verdiene kan bestemmes av verdiene i feltet KundeID.

Hvis du vil føye sammen tabellene slik at spørringen kombinerer poster fra tabellene, bortsett fra poster som ikke har noen samsvarende post i den andre tabellen, kan FROM-setningsdelen se omtrent slik ut (linjeskift er lagt til her for å gjøre det lettere å lese):

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

I Microsoft Office Access oppstå koblinger i FROM-setningsdelen av en SELECT-setning. Det finnes to typer sammenføyninger: indre koblinger og ytre koblinger. De følgende avsnittene forklarer disse to typer sammenføyninger.

Indre sammenføyninger

Indre sammenføyninger er den vanligste sammenføyningstypen. Når en spørring med en indre sammenføyning kjøres, blir bare de postene med en felles verdi i begge de sammenføyde tabellene inkludert i spørringsresultatene.

En indre sammenføyning har følgende syntaks (linjeskift er lagt til her for å gjøre det lettere å lese):

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

Den følgende tabellen beskriver de forskjellige delene i en INDRE SAMMENFØYNINGS-operasjon.

Del

Beskrivelse

tabell1, tabell2

Navnene på tabellene som postene kombineres fra.

felt1, felt2

Navnene på de sammenføyde feltene. Hvis de ikke er numeriske, må feltene være av samme datatype og inneholde samme type data, men de trenger ikke ha samme navn.

smlopr

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

Ytre sammenføyninger

Ytre sammenføyninger er lik indre sammenføyninger på den måten at de informerer en spørring om hvordan informasjon fra to kilder skal kombineres. De skiller seg fra dem ved at de også angir hvorvidt data uten noen felles verdi skal inkluderes. Ytre sammenføyninger er retningsbestemte: Du kan spesifisere om alle postene fra den første datakilden angitt i sammenføyningen (kalt venstre sammenføyning) skal inkluderes, eller om alle postene fra den andre datakilden i sammenføyningen (kalt høyre sammenføyning) skal inkluderes.

En ytre sammenføyning har følgende syntaks:

FROM tabell1 [venstre | RIGHT] JOIN tabell2
ON tabell1.felt1smlopr tabell2.felt2

Den følgende tabellen beskriver de forskjellige delene i VENSTRE SAMMENFØYNING- og HØYRE SAMMENFØYNINGS-operasjoner.

Del

Beskrivelse

tabell1, tabell2

Navnene på tabellene som postene kombineres fra.

felt1, felt2

Navnene på de sammenkoblede feltene. Feltene må være av samme datatype og inneholde samme type data, men de trenger ikke ha samme navn.

smlopr

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

Hvis du vil ha mer informasjon om sammenføyninger, kan du se artikkelen Sammenføyningstabeller og spørringer.

Til toppen av siden

Mer om WHERE-setningsdelen

Når du vil bruke data for å begrense antall poster som returneres i en spørring, kan du bruke spørringen kriterier i WHERE-setningsdelen i en SELECT-setning. Et spørringsvilkår ligner på en formel – det er en streng som kan bestå av feltreferanser, operatorer og konstanter. Spørringsvilkår er en type uttrykk.

Tabellene nedenfor viser noen eksempelvilkår, og forklarer hvordan de fungerer.

Vilkår

Beskrivelse

>25 and <50

Dette vilkåret gjelder for et tall-felt, for eksempel pris eller EnheterPåLager. Den inneholder bare postene der-feltet inneholder en verdi større enn 25 og mindre enn 50.

DateDiff ("åååå", [Fødselsdato], Date()) > 30

Dette vilkåret gjelder for et dato/klokkeslett-felt, for eksempel Fødselsdato. Bare poster der antallet år mellom en persons fødselsdato og dagens dato er større enn 30 inkluderes i spørringsresultatet.

Er null

Dette vilkåret kan brukes på alle typer felt for å vise poster der feltverdien er null.

Som den forrige tabellen illustrerer, kan vilkårene se svært forskjellige ut, avhengig av datatypen for feltet de gjelder for og de spesifikke kravene dine. Noen vilkår er enkle, og bruker grunnleggende operatorer og konstanter. Andre er komplekse og bruker funksjoner og spesialoperatorer og inkluderer feltreferanser.

Viktig!: Hvis et felt brukes med en mengdefunksjon, kan du angi vilkår for dette feltet i en WHERE-setning. I stedet kan bruke du en HAVING-setningsdel til å angi vilkår for aggregert felt. For mer informasjon, kan du se delen arbeide med summerte data: GROUP BY- og HAVING.

WHERE-setningssyntaks

En WHERE-setning har følgende grunnleggende syntaks:

WHERE field = criterion

Anta for eksempel at du vil bruke telefonnummeret til en kunde, men du husker bare at kundens etternavn er Bagel. I stedet for å se på alle telefonnumrene i databasen, kan du bruke en WHERE-setning for å begrense resultatene og gjøre det enklere å finne telefonnummeret du vil bruke. Hvis vi forutsetter at etternavn som er lagret i et felt som heter LastName, vises WHERE-setningen som følger:

WHERE [LastName]='Bagel'

Obs!: Du har ikke basere vilkårene i WHERE-setningsdelen på likhet med verdier. Du kan bruke andre sammenligningsoperatorer, for eksempel større enn (>) eller mindre enn (<). Hvis du for eksempel der [Rabatt] > 100.

Bruk WHERE-setningen til å kombinere datakilder

Noen ganger vil du kanskje sammenligne tabeller på grunnlag av feltene som inneholder samsvarende data, men har forskjellige datatyper. Et felt i én tabell kan for eksempel ha datatypen tall, mens du vil sammenligne feltet med et felt i en annen tabell som har datatypen tekst.

Du kan ikke opprette en kobling mellom felt som har forskjellige datatyper. Hvis du vil slå sammen data fra to datakilder som er basert på verdier i felt som har forskjellige datatyper, kan du opprette en WHERE-setning som bruker ett felt som vilkår for det andre feltet, ved hjelp av LIKE-nøkkelordet.

Anta for eksempel at du vil bruke data fra tabell1 og tabell2, men bare når dataene i felt1 (et tekstfelt i tabell 1) samsvarer med dataene i felt2 (et tallfelt i tabell2). WHERE-setningen vil ligne på følgende:

WHERE field1 LIKE field2

Hvis du vil ha mer informasjon om hvordan du oppretter vilkår i en WHERE-setning, kan du se artikkelen Eksempler på spørringsvilkår.

Til toppen av siden

Bli bedre på Office
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×