Redigera SQL-uttryck för att skärpa frågeresultat
Applies ToAccess för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Om dina frÄgor inte fungerar tillrÀckligt hÄrt kan du fokusera resultaten genom att lÀgga till nÄgra grundlÀggande SQL-satser. LÄt oss titta pÄ nÄgra typer av SQL-uttryck och de satser eller delar som du kan redigera för att fÄ de resultat du vill ha.

Obs!:  Den hĂ€r artikeln gĂ€ller inte för Access-webbappar – den sortens databas som du utformar med Access och publicerar online.

ArtikelinnehÄll

Skapa ett Select-uttryck

Ett SQL Select-uttryck har tvÄ till tre satser. SELECT-satsen talar om för databasen var de ska söka efter data och ber den att returnera ett specifikt resultat.

Obs!:  SELECT-uttryck slutar alltid med semikolon (;) antingen i slutet av den sista satsen eller pÄ en rad i slutet av SQL-uttrycket.

Följande select-instruktion ber Access att hÀmta information frÄn kolumnerna E-postadress och Företag, frÄn tabellen Kontakter, sÀrskilt dÀr "Seattle" hittas i kolumnen Ort.

SQL-objektfliken med ett SELECT-uttryck

OvanstÄende frÄga har tre satserNA SELECT, FROM och WHERE.

1. SELECT-satsen listar kolumnerna som innehÄller de data som du vill anvÀnda och har en operator (SELECT) följt av tvÄ identifierare (E-mail Address and Company). Om en identifierare innehÄller blanksteg eller specialtecken (t.ex. "E-postadress" omger du identifieraren inom hakparenteser.

2. FROM-satsen identifierar kÀlltabellen. I det hÀr exemplet har den en operator (FROM) följt av en identifierare (Kontakter).

3. WHERE-satsen Àr en valfri sats. I exemplet finns en operator (WHERE) följt av ett uttryck (City="Seattle").

Mer information om urvalsfrÄgor finns i skapa en enkel urvalsfrÄga.

HÀr Àr en lista över vanliga SQL-satser:

SQL-sats

Funktion

KrÀvs ?

SELECT

Visar de fÀlt som innehÄller de data som du Àr intresserad av.

Ja

FROM

Visar de tabeller som innehÄller de fÀlt som anges i SELECT-satsen.

Ja

WHERE

Anger vilka fÀltvillkor som mÄste uppfyllas av en post för att posten ska tas med i resultatet.

Nej

ORDER BY

Anger hur resultatet ska sorteras.

Nej

GROUP BY

Visar fÀlt som inte sammanfattas i SELECT-satsen i SQL-uttryck som innehÄller mÀngdfunktioner.

Endast om den typen av fÀlt förekommer

HAVING

Anger vilka villkor som gÀller för fÀlt som sammanfattas i SELECT-satsen i SQL-uttryck som innehÄller mÀngdfunktioner.

Nej

Varje SQL-sats bestÄr av termer. HÀr Àr en lista över nÄgra vanliga SQL-termer.

SQL-term

Definition

Exempel

identifierare

Ett namn som du anvÀnder för att identifiera ett databasobjekt, till exempel kolumnnamnet.

[E-postadress] och företag

operator

Ett nyckelord som representerar eller modifierar en ÄtgÀrd.

AS

konstant

Ett vÀrde som inte Àndras, till exempel ett tal eller NULL.

42

uttryck

En kombination av identifierare, operatorer, konstanter och funktioner som returnerar ett enda vÀrde.

>= Produkter.[Enhetspris]

Överst pĂ„ sidan

Anpassa SELECT-satsen

Anpassa

Exempel

Om du bara vill visa distinkta vÀrden.

AnvÀnd nyckelordet DISTINCT i SELECT-satsen.

Om dina kunder till exempel kommer frÄn flera olika filialkontor och vissa har samma telefonnummer och du bara vill se ett telefonnummer en gÄng, skulle SELECT-satsen se ut sÄ hÀr:

SELECT DISTINCT [txtCustomerPhone] 

SÄ hÀr Àndrar du hur en identifierare visas i databladsvyn för att förbÀttra lÀsbarheten.

AnvÀnd AS-operatorn (ett nyckelord som representerar en ÄtgÀrd eller Àndrar en ÄtgÀrd) med ett fÀltalias i SELECT-satsen. Ett fÀltalias Àr ett namn som du tilldelar ett fÀlt för att göra resultatet lÀttare att lÀsa.

SELECT [txtCustPhone] AS [Customer Phone]

Anpassa FROM-satsen

Anpassa

Exempel

Du kan anvÀnda ett tabellalias eller ett annat namn som du tilldelar en tabell i ett select-uttryck. Ett tabellalias Àr anvÀndbart om namnet pÄ tabellnamnet Àr lÄngt, sÀrskilt nÀr du har flera fÀlt som har samma namn frÄn olika tabeller.

Om du vill vÀlja data frÄn tvÄ fÀlt, bÄde med namnet ID, varav ett kommer frÄn tabellen tblCustomer och det andra frÄn tabellen tblOrder:

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

AnvÀnd AS-operatorn för att definiera tabellalias i FROM-satsen:

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

Sedan kan du anvÀnda följande tabellalias i SELECT-satsen:

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

AnvÀnd kopplingar för att kombinera par med poster frÄn tvÄ datakÀllor till ett resultat eller för att ange om poster frÄn nÄgon av tabellerna ska tas med om det inte finns nÄgon motsvarande post i den relaterade tabellen.

Koppla tabellerna sÄ att frÄgan kombinerar objekten frÄn tabellerna och exkluderar objekt nÀr det inte finns nÄgon motsvarande post i den andra tabellen

SÄ hÀr kan FROM-satsen se ut:

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

Om att anvÀnda kopplingar

Det finns tvÄ typer av kopplingar, inre och yttre kopplingar. Inre kopplingar Àr vanligare i frÄgor. NÀr du kör en frÄga med en inre koppling visas bara de objekt dÀr det finns ett gemensamt vÀrde i bÄda de kopplade tabellerna.

Yttre kopplingar anger om data ska inkluderas dÀr det inte finns nÄgot gemensamt vÀrde. Yttre kopplingar Àr riktade, vilket innebÀr att du kan ange om du vill ta med alla poster frÄn den första tabellen som anges i kopplingen (kallas för en vÀnsterkoppling), eller om du vill ta med alla poster frÄn den andra tabellen i kopplingen (kallas för en högerkoppling). En yttre koppling har följande SQL-syntax:

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

Mer information om hur du anvÀnder kopplingar i en frÄga finns i Koppla tabeller och frÄgor.

Överst pĂ„ sidan

Anpassa WHERE-satsen

WHERE-satsen innehÄller villkor som begrÀnsar antalet objekt som returneras i en frÄga. Se exempel pÄ frÄgevillkor och hur de fungerar.

Ett exempel pÄ hur du kan anpassa den grundlÀggande WHERE-satsen Àr att begrÀnsa resultatet av en frÄga. Anta att du vill hitta telefonnumret till en kund och bara kan komma ihÄg hans efternamn som Bagel. I det hÀr exemplet lagras efternamnen i ett LastName-fÀlt, sÄ SQL-syntaxen skulle vara:

WHERE [LastName]='Bagel'

AnvÀnd WHERE-satsen för att kombinera datakÀllor för kolumner som har matchande data, men olika datatyper. Det hÀr Àr praktiskt eftersom du inte kan skapa en koppling mellan fÀlt som har olika datatyper. AnvÀnd ett fÀlt som ett villkor för det andra fÀltet med nyckelordet LIKE . Om du till exempel vill anvÀnda data frÄn tabellen TillgÄngar och tabellen AnstÀllda, bara nÀr typen av tillgÄng i fÀltet TillgÄngstyp i tabellen TillgÄngar har talet 3 i fÀltet Antal i tabellen AnstÀllda, skulle where-satsen se ut sÄ hÀr:

WHERE field1 LIKE field2

Viktigt!:  Du kan inte ange villkor för ett fÀlt som anvÀnds med en mÀngdfunktion i en WHERE-sats. I stÀllet kan du anvÀnda en HAVING-sats för att ange villkor för aggregeringsfÀlt.

Överst pĂ„ sidan

Anpassa med operatorn UNION

AnvĂ€nd operatorn UNION nĂ€r du vill se en kombinerad vy av resultat frĂ„n flera liknande urvalsfrĂ„gor. Om databasen till exempel har en produkttabell och en tjĂ€nsttabell och bĂ„da har tre fĂ€lt: exklusivt erbjudande eller produkt eller tjĂ€nst, pris, garanti eller garanti. Även om garantiinformation lagras i tabellen Produkter och garantiinformation lagras i tabellen TjĂ€nster, Ă€r den grundlĂ€ggande informationen densamma. Du kan anvĂ€nda en unionsfrĂ„ga för att kombinera de tre fĂ€lten frĂ„n de tvĂ„ tabellerna sĂ„ hĂ€r:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

NÀr du kör frÄgan kombineras data frÄn varje uppsÀttning motsvarande fÀlt till ett utdatafÀlt. Om du vill ta med dubblettrader i resultatet anvÀnder du operatorn ALL.

Obs!:  Select-instruktionen mÄste ha samma antal utdatafÀlt, i samma ordning och med samma eller kompatibla datatyper. NÀr det gÀller unionsfrÄgor Àr antal och textdatatyper kompatibla.

Mer information om unionsfrÄgor finns i AnvÀnda en unionsfrÄga för att visa ett enhetligt resultat frÄn flera frÄgor.

Överst pĂ„ sidan

Behöver du mer hjÀlp?

Vill du ha fler alternativ?

Utforska prenumerationsförmÄner, blÀddra bland utbildningskurser, lÀr dig hur du skyddar din enhet med mera.

Communities hjÀlper dig att stÀlla och svara pÄ frÄgor, ge feedback och fÄ rÄd frÄn experter med rika kunskaper.