Vyřešeno: vyberte prvních 10 řádků

Oracle SQL nám umožňuje manipulovat a spravovat data v relačních databázích. Mezi běžné úkoly patří dotazování na data, vytváření tabulek a vývoj složitých rutin pro zpracování dat. Jedním z častých úkolů, které vývojáři provádějí s SQL, je výběr konkrétních řádků z databázové tabulky. Někdy může být potřeba omezit počet řádků, které vybíráme, často z důvodu výkonu. Ve výchozím nastavení, když napíšete příkaz „SELECT“ v Oracle SQL, načte všechny řádky z určené tabulky, které splňují vaše kritéria. Ale co když chceme jen prvních 10 řádků? V této příručce si ukážeme, jak vybrat pouze prvních 10 řádků v Oracle SQL.

SELECT *
OD (VYBRAT *
Z vašeho_stolu
ORDER BY some_column)
WHERE ROWNUM <= 10; [/kód]

Oracle SQL používá speciální pseudosloupec tzv „ROWNUM“ aby vývojáři mohli provádět operace, jako jsou tyto. Tento pseudosloupec nám při načtení udává číslo každého řádku, počínaje 1 až po libovolný počet řádků v dotazu.

Podrobné vysvětlení kódu

Pojďme si rozebrat, co tento dotaz znamená.

[kód lang=”Oracle SQL”]
SELECT * FROM (SELECT * FROM your_table ORDER BY some_column)

Tato první část dotazu vybere všechny sloupce z vaší tabulky a seřadí je podle „nějakého_sloupce“. Třídíme to, protože ROWNUM je přiřazeno k řádkům po pořadí podle klauzule a před jakýmkoli filtrováním probíhá.

WHERE ROWNUM <= 10; [/code] V druhé části dotazu vstupuje do hry pseudosloupec "ROWNUM". V zásadě říká společnosti Oracle, aby nám poskytla pouze řádky, kde je ROWNUM 10 nebo méně, tedy prvních 10 řádků. Jednou z klíčových poznámek je, že hodnoty ROWNUM jsou přiřazeny načteným řádkům počínaje 1 a hodnoty nejsou potvrzeny, dokud není plně zpracována klauzule "ORDER BY".

ROWNUM a Výkon

Použití ŘAD může výrazně zlepšit výkon, zejména při práci s velkým množstvím dat. Oracle nemusí načítat všechna data z disku a uchovávat je v paměti, než začne vracet výsledky. Může vrátit výsledky, jakmile získá prvních 10, které splňují všechny podmínky v příkazu SQL.

Podobné funkce

Podobná funkce jako ROWNUM v Oracle SQL je NAČÍST POUZE PRVNÍCH n ŘÁDKŮ. Tato klauzule je však dostupná pouze v Oracle 12c a novějších verzích.

[kód lang=”Oracle SQL”]
SELECT *
Z vašeho_stolu
OBJEDNAT PODLE nějakého_sloupce
NAČÍST POUZE PRVNÍCH 10 ŘÁDKŮ;

Celkově Oracle SQL poskytuje programátorům několik užitečných technik pro omezení počtu řádků vrácených dotazem SELECT.

Související příspěvky:

Zanechat komentář