SQL dotazy s ALL, TOP, DISTINCT, DISTINCTROW predikátom

  • Jul 26, 2021
click fraud protection

Predikát je zahrnutý medzi klauzulou a krstným menom poľa, ktoré sa má načítať, možné predikáty sú:

  • VŠETKY: Vráti všetky polia v tabuľke
  • TOP: Vráti určitý počet záznamov z tabuľky
  • ODLIŠNÝ: Preskočiť záznamy, ktorých vybrané polia sa úplne zhodujú
  • ROZDIEL: Preskočiť duplicitné záznamy na základe celého záznamu, nielen vybratých polí.

VŠETKY (* je možné použiť namiesto):

Reklamy

Ak nie je zahrnutý žiadny z predikátov, predpokladá sa ALL. Databázový stroj vyberie všetky záznamy, ktoré vyhovujú podmienkam príkazu SQL. Nie je vhodné zneužiť tento predikát, pretože databázový stroj nútime analyzovať štruktúry tabuľky, aby ste zistili, ktoré polia obsahuje, je oveľa rýchlejšie označiť zoznam polí žiaduce.

Reklamy

VYBERTE VŠETKO ZO Zamestnanci;

VYBERTE * DESDE Zamestnanci;

Reklamy

TOP

Vráti určitý počet záznamov, ktoré spadajú medzi začiatok alebo koniec rozsahu určeného klauzulou ORDER BY. Predpokladajme, že chceme získať mená prvých 25 študentov akademického roku 1994:

Reklamy

- VYBERTE TOP 25 Meno, Priezvisko DESDE Študenti

- ZORADIŤ PODĽA Poznámka POPIS;

Reklamy

Ak doložka nie je zahrnutá ZORADIŤ PODĽA, dotaz vráti ľubovoľnú množinu 25 záznamov z tabuľky Studenti. Predikát TOP nevyberá si medzi rovnakými hodnotami. V príklade vyššie, ak sú priemer 25. a 26. ročníka priemerný, dotaz vráti 26 záznamov. Môžete použiť vyhradené slovo PERCENT vrátiť určité percento záznamov, ktoré spadajú na začiatok alebo na koniec rozsahu určeného v klauzule ZORADIŤ PODĽA. Predpokladajme, že namiesto prvých 25 študentov chceme 10 percent kurzu:

- VYBERTE TOP 10 PERCENT Meno priezvisko DESDE Študenti ZORADIŤ PODĽA Poznámka POPIS;

Hodnota, ktorá nasleduje TOP musí byť celé číslo bez znamienka.TOP neovplyvňuje to možnú aktualizáciu dotazu.

ODLIŠNÝ

Preskočte záznamy, ktoré obsahujú duplicitné údaje vo vybratých poliach. Aby boli hodnoty každého poľa uvedené vo výpise VYBERTE zahrnuté v dotaze musia byť jedinečné.

Napríklad viacerí zamestnanci uvedení v tabuľke Zamestnanci môžu mať rovnaké priezvisko. Ak dva záznamy obsahujú Lopez v poli Priezvisko, nasledujúce vyhlásenie SQL vráti jeden záznam:

- VYBERTE OKREM Priezvisko DESDE Zamestnanci;

Inými slovami predikát ODLIŠNÝ vráti tie záznamy, ktorých polia sú uvedené v klauzule VYBERTE mať iný obsah. Výsledok použitého dotazu ODLIŠNÝ nie je možné ho upgradovať a neodráža následné zmeny vykonané inými používateľmi.

ROZDIEL

Vráti rôzne záznamy z tabuľky; Na rozdiel od predchádzajúceho predikátu, ktorý sledoval iba obsah vybraných polí, robí to v obsahu celého záznamu bez ohľadu na polia uvedené v doložka VYBERTE.

- VYBERTE DISTINCTROW Priezvisko DESDE Zamestnanci;

Ak tabuľka zamestnancov obsahuje dva záznamy: Antonio López a Marta López, príklad predikátu ODLIŠNÝ vráti jeden záznam s hodnotou Lopez v poli Priezvisko, pretože v tomto poli nevyhľadáva duplikáty. Tento posledný príklad vráti dva záznamy s hodnotou Lopez v priezvisku, pretože sa v celom zázname hľadajú neduplikáty.

instagram viewer