SQL Server Offset Fetch

SQL Server Offset Fetch
W tym artykule nauczy Cię, jak korzystać z klauzuli Fetch Fetch na serwerze SQL. Klauzula Offset Fetch na serwerze SQL umożliwia ustawienie limitu liczby wierszy zwróconych z danego. Jest ściśle podobny do klauzuli limitu w innych bazach danych, takich jak PostgreSQL i MySQL. Dobrze należy pamiętać, że klauzula Fetch Fetch jest sparowana z klauzulą ​​zamówienia.

Składnia klauzuli

Poniżej pokazuje składnię klauzuli fetch przesunięcia w połączeniu według instrukcji:

Zamów przez kolumn_list [ASC | DESC]
Offset offset_row_count wiersz | WYDZIWIANIE
Fetch pierwszy | Następnie fetch_row_count wiersz | Tylko wiersze

Parametry opisano poniżej:

  • Offset - to określa liczbę wierszy do pominięcia przed zwróceniem wyniku z zapytania. Wartość może być stała, zmienna zdefiniowana przez użytkownika lub wyrażenie, które zwraca jedną wartość. Musi być większy lub równy zero.
  • Fetch - klauzula Fetch umożliwia określenie liczby wierszy, które chcesz zwrócić po wartości przesunięcia. Ta wartość musi być większa niż 1.

Klauzula Offset Fetch jest sparowana z klauzulą ​​zamówienia. Dlatego próba użycia ich jako samodzielnych zapytań spowoduje błąd.

Przykładowa ilustracja

Zilustrujmy, jak możemy pracować z klauzulą ​​Fetch Fetch na serwerze SQL. Załóżmy na przykład, że mamy tabelę przedstawioną w pytaniu poniżej:

Zrzuć bazę danych, jeśli istnieje zapasy;
Utwórz zapasy bazy danych;
Użyj zapasów;
Stół zrzutu, jeśli istnieje produkty;
Utwórz produkty stołowe
(
Id Int Identity Klucz podstawowy nie null,
Product_name varchar (100),
producent varchar (50),
Ilość int nie null,
Cena int Domyślnie 0,
bit in_stock
);
Wstaw do produktów (nazwa_produktu, producent, ilość, cena, in_stock)
Wartości („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 "klasa S95B OLED 4K Smart TV - 2021 ',„ Samsung ”, 900, 1999.90, 1),
(„Odyssey Ark Quantum Mini -LED Ecran gier - 2021”, „Samsung”, 50, 2999.90, 1);

Wynikowy stół:

Zacznijmy od zamówienia wierszy w tabeli przez producenta:

Wybierz * Z Producenta z zamówienia produktów;

Powstała tabela jest jak pokazana:

Możemy pominąć trzy pierwsze rzędne, jak pokazano w zapytaniu poniżej:

Wybierz nazwę_produktu, producent, ilość, cena, in_stock
z produktów
Zamów przez producenta
Offset 3 wiersze;

W takim przypadku zapytanie powinno zamówić tabelę według producenta, pominąć pierwsze trzy wiersze i zwrócić resztę tabeli.

Przykładem jest to, jak pokazano:

Jak widać, rzędy zawierające „jabłko” jako producent są wykluczone z wyniku.

Możemy wykluczyć ostatni wiersz, zwracając kolejne trzy kolumny po przesunięciu. Przykładowe zapytanie jest takie, jak pokazano:

Wybierz nazwę_produktu, producent, ilość, cena, in_stock
z produktów
Zamów przez producenta
Offset 3 wiersze
pobrać tylko 3 kolejne rzędy;

W takim przypadku pomijamy pierwsze trzy kolumny i pobieramy kolejne trzy kolumny z wyniku. Tabela wyjściowa jest jak pokazana:

Wniosek

W tym poście omówiliśmy przy użyciu klauzuli Fetch Fetch na serwerze SQL. Ta funkcja pozwala pominąć i ograniczyć liczbę wierszy z danego zapytania.