Limit w Oracle

Limit w Oracle

W większości przypadków bazy danych obejmują tysiące do milionów rekordów w tabeli. Ręczne sprawdzenie wszystkich rekordów może być zniechęcające podczas wykonywania zapytań.

Dlatego będziesz musiał użyć różnych klauzul w SQL, takich jak instrukcje warunkowe, funkcje dopasowywania wzorów, operatorzy itp. Nawet wtedy możesz skończyć z licznymi rekordami do sortowania.

Możemy użyć funkcji limitu w SQL i innych dialektach podobnych do SQL, aby dodatkowo ograniczyć liczbę wierszy zwróconych z danego zapytania.

W tym poście omówiono krótki format ograniczenia liczby rekordów zwróconych z danego zapytania Oracle. Pamiętaj, że w bazie danych Oracle nie ma żadnej klauzuli limitu, jak znajdziesz w innych bazach danych, takich jak MySQL, PostgreSQL itp.

Oracle Rownum

Aby wdrożyć klauzulę podobną do limitu, użyjemy funkcji Rownum w SQL. Ta funkcja zwraca liczbę wierszy w danym wyniku.

Pozwól nam zbadać, w jaki sposób możemy użyć tej funkcji.

Przykładowe użycie

Załóżmy, że mamy tabelę z informacjami o pracownikach, jak pokazano na poniższym obrazku:

Problem

Załóżmy, że chcemy pobrać pierwsze pięć kolumn z powyższej tabeli i zignorować resztę?

Rozwiązanie

Możemy użyć podziału, jak pokazano na fragmencie poniżej:

wybierać *
z (wybierz pracownika_dem, pierwsza nazwa_nazwa, pensja od zamówienia pracowników przez pracowników_dówkę ASC)
gdzie rownum <= 5;

W powyższym zapytaniu definiujemy substancję za pomocą klauzuli z. Następnie podtrzymanie pobiera kolumny docelowe i sortuje wiersze w kolejności rosnącej na podstawie pracownika.

Na koniec definiujemy warunkowe stwierdzenie, które zapewnia, że ​​zwrócona liczba wierszy jest mniejsza lub równa 5. To zmusza liczbę rekordów z zapytania do zatrzymania się o piątej.

Przykładem jest to, jak pokazano:

Należy pamiętać, że korzystanie z podziału zapewnia, że ​​wiersze są sortowane w kolejności rosnącej lub malejącej. Na przykład, jeśli chcesz pobrać pięć losowych wierszy, uruchom:

Wybierz pracowników_dem, pierwsza nazwa_nazowa, wynagrodzenie
od pracowników
gdzie rownum <= 5;

Wyjście:

Ze powyższego wyjścia możesz nie zauważać różnicy. Jednak uruchomienie zapytania bez zamówienia według klauzuli w nieporozumieniu spowoduje losowy zestaw wartości.

Wniosek

Ten krótki, ale cenny samouczek zbadał wdrożenie klauzuli limitu w bazie danych Oracle za pomocą wartości Rownum.