SQL Server Offset Fetch

SQL Server Offset Fetch
Denne artikkelen vil lære deg hvordan du bruker Offset Fetch -leddet i SQL Server. Offset Hent -klausulen i SQL Server lar deg angi grensen for antall rader som returneres fra en gitt. Det ligner nær begrensningsklausulen i andre databaser som PostgreSQL og MySQL. Det er godt å huske på at forskyvningshentbestemmelsen er sammenkoblet med ordren etter klausul.

Klausul syntaks

Følgende viser syntaks for forskyvningshentet som er sammenkoblet etter ordren ved uttalelse:

Bestill av kolonne_list [asc | desc]
Offset offset_row_count rad | Rader
Hente først | Neste fetch_row_count rad | Rader bare

Parametrene er beskrevet nedenfor:

  • Offset - Dette bestemmer antall rader som skal hoppes ut før du returnerer resultatet fra spørringen. Verdien kan være konstant, en brukerdefinert variabel, eller et uttrykk som returnerer en enkelt verdi. Det må være større enn eller lik null.
  • Fetch - Fetch Clause lar deg spesifisere antall rader du ønsker å returnere etter forskyvningsverdien. Denne verdien må være større enn 1.

Offset Hent -leddet er sammenkoblet med ordren etter klausul. Derfor vil det å prøve å bruke dem som frittstående spørsmål resultere i en feil.

Eksempel illustrasjon

La oss illustrere hvordan vi kan jobbe med Offset Fetch -leddet i SQL Server. Anta for eksempel at vi har en tabell gitt i spørringen nedenfor:

Drop Database hvis eksisterer inventar;
Opprette databasebeholdning;
Bruk varelager;
Slippbord hvis det eksisterer produkter;
Lag bordprodukter
(
id int identitet primær nøkkel ikke null,
produktnavn varchar (100),
Produsenten varchar (50),
mengde int ikke null,
pris int standard 0,
in_stock bit
);
sett inn i produkter (produktnavn, produsent, mengde, pris, in_stock)
Verdier ('Apple iPad Air - 2022', 'Apple', 100, 569.99, 1),
('Samsung Galaxy Z Flip 4 - 2022', 'Samsung', 302, 1569.00, 1),
('Sony PlayStation 5 - 2020', 'Sony', 500, 499.99, 1),
('Samsung Galaxy Watch -5 Pro - 2022', 'Samsung', 600, 209 / .99, 1),
('Apple Watch Series 6 - 2022', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro - 2022', 'Apple', 200, 199.99, 1),
('55 "Klasse S95B OLED 4K Smart TV - 2021 ',' Samsung ', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini -ledet buet spillskjerm - 2021', 'Samsung', 50, 2999.90, 1);

Resulterende bord:

La oss starte med å bestille radene i tabellen av produsenten:

Velg * fra produkter bestilling av produsent;

Det resulterende tabellen er som vist:

Vi kan hoppe over de tre første radene som vist i spørringen nedenfor:

Velg produktnavn, produsent, mengde, pris, in_stock
fra produkter
Bestill av produsent
offset 3 rader;

I dette tilfellet skal spørringen bestille tabellen med produsent, hoppe over de tre første radene og returnere resten av tabellen.

Et eksempelutgang er som vist:

Som du kan se, blir radene som inneholder 'eple' som produsenten ekskludert fra resultatet.

Vi kan ekskludere den siste raden ved bare å returnere de neste tre kolonnene etter forskyvningen. Et eksempel på spørring er som vist:

Velg produktnavn, produsent, mengde, pris, in_stock
fra produkter
Bestill av produsent
offset 3 rader
Hent bare 3 rader;

I dette tilfellet hopper vi over de tre første kolonnene og henter de neste tre kolonnene fra resultatet. Utgangstabellen er som vist:

Konklusjon

I dette innlegget diskuterte vi ved hjelp av Offset Fetch -leddet i SQL Server. Denne funksjonen lar deg hoppe over og begrense antall rader fra en gitt spørring.