Office
Logg på

SQL-delspørringer

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.

En delspørring er en SELECT-setning nestet i en SELECT, velg... SETTE INN... INTO, Slett eller UPDATE-setningen eller i en annen delspørring.

Syntaks

Du kan bruke tre typer syntaksen til å opprette en delspørring:

Sammenligning [EVENTUELLE | ALLE | NOEN] (SQL-setning)

uttrykk [NOT] I (SQL-setning)

[NOT] EXISTS (SQL-setning)

En delspørring har følgende deler:

Del

Beskrivelse

Sammenligning

En uttrykk og en sammenligningsoperator som sammenligner uttrykket med resultatene av delspørringen.

uttrykk

Et uttrykk som det blir søkt resultatsettet for delspørringen.

sqlstatement

En SELECT-setning, følge de samme format og regler som alle andre SELECT-setninger. Det må være omsluttet av parenteser.


Kommentarer

Du kan bruke en delspørring i stedet for et uttrykk i feltlisten for en SELECT-setning eller i en WHERE- eller HAVING-setningsdel. I en delspørring, kan du bruke en SELECT-setning til å gi et sett med én eller flere bestemte verdier skal evalueres i WHERE- eller HAVING-setningsdel uttrykk.

Bruk alle eller noen predikatet, som er samme for å hente poster i hovedvinduet spørringen som fullfører sammenligningen med poster hentet fra delspørringen. Følgende eksempel returnerer alle produkter med en enhetspris er større enn det som et produkt selges med rabatt 25 prosent eller mer:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Bruk ALL-predikatet til å hente bare de postene i hovedvinduet spørringen som fullfører sammenligningen med alle poster som er hentet fra delspørringen. Hvis du endret ANY til ALL i forrige eksempel, vil spørringen returnerer bare disse produktene der enhetsprisen er større enn på alle varene selges med rabatt 25 prosent eller mer. Dette er mye mer begrenset.

Bruk IN-predikatet til å hente bare de postene i hovedvinduet spørringen som inneholder noen post i delspørringen en lik verdi. Følgende eksempel returnerer alle produkter med rabatt 25 prosent eller mer:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Du kan derimot bruke NOT IN for å hente bare disse postene i hovedvinduet spørringen som inneholder ingen post i delspørringen en lik verdi.

Bruk EXISTS-predikatet (reservert ord med valgfri ikke) i SANN/USANN sammenligninger for å avgjøre om delspørringen returnerer alle poster.

Du kan også bruke aliaser for tabellnavn i en delspørring til å referere til tabeller i en FROM-setningsdel utenfor delspørringen. Følgende eksempel returnerer navnene på ansatte som har lønn lik eller større enn gjennomsnittlig lønn til alle ansatte med samme stilling. Ansatte-tabellen er gitt aliaset "T1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

I eksemplet ovenfor er som reservert ord valgfritt.

Noen delspørringer er tillatt i krysstabellspørringer – spesielt som predikater (de i WHERE-setningsdelen). Delspørringer som utdata (de i SELECT-listen) er ikke tillatt i krysstabellspørringer.



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.

×