SQL upiti sa ALL, TOP, DISTINCT, DISTINCTROW predikatom

  • Jul 26, 2021
click fraud protection

Predikat je uključen između klauzule i imena polja za dohvaćanje, mogući su predikati:

  • SVI: Vraća sva polja u tablici
  • VRH: Vraća određeni broj zapisa iz tablice
  • RAZLIKUJ: Preskoči zapise čija se odabrana polja potpuno podudaraju
  • RAZLIKUJ: Preskočite dvostruke zapise na temelju cijelog zapisa, a ne samo odabranih polja.

SVI (* se može koristiti umjesto toga):

Reklame

Ako nijedan predikat nije uključen, pretpostavlja se ALL. Database Engine odabire sve zapise koji udovoljavaju uvjetima SQL izraza. Nije prikladno zloupotrijebiti ovaj predikat jer prisiljavamo mehanizam baze podataka da analizira struktura tablice kako bi se saznala polja koja sadrži, mnogo je brže naznačiti popis polja željeni.

Reklame

ODABERI SVE OD Zaposlenici;

ODABERI * DESDE Zaposlenici;

Reklame

VRH

Vraća određeni broj zapisa koji padaju između početka ili kraja raspona navedenog klauzulom ORDER BY. Pretpostavimo da želimo doći do imena prvih 25 studenata akademske 1994. godine:

Reklame

- ODABERITE VRH 25 Ime, Prezime DESDE Studenti

- NARUČITE PO Bilješka DESC;

Reklame

Ako klauzula nije uključena NARUČITE PO, upit će vratiti proizvoljan skup od 25 zapisa iz tablice Studenti VRH ne bira između jednakih vrijednosti. U gornjem primjeru, ako su prosjek 25. i 26. razreda jednaki, upit će vratiti 26 zapisa. Možete upotrijebiti rezerviranu riječ POSTOJAK za vraćanje određenog postotka zapisa koji padaju na početak ili kraj raspona navedenog u klauzuli NARUČITE PO. Pretpostavimo da umjesto prvih 25 učenika želimo 10 posto predmeta:

- ODABERITE VRH 10 POSTOJAK Ime prezime DESDE Studenti NARUČITE PO Bilješka DESC;

Vrijednost koja slijedi VRH mora biti nepotpisano Integer.VRH to ne utječe na moguće ažuriranje upita.

RAZLIKUJ

Preskočite zapise koji sadrže dvostruke podatke u odabranim poljima. Tako da su vrijednosti svakog polja navedena u izjavi ODABERI uključeni u upit moraju biti jedinstveni.

Na primjer, više zaposlenika navedenih u tablici Zaposlenici mogu imati isto prezime. Ako dva zapisa sadrže Lopez u polju Prezime, sljedeća izjava SQL vraća jedan zapis:

- ODABERITE RAZLIKU Prezime DESDE Zaposlenici;

Drugim riječima predikat RAZLIKUJ vraća one zapise čija su polja navedena u klauzuli ODABERI imaju drugačiji sadržaj. Rezultat upita koji koristi RAZLIKUJ nije ga moguće nadograditi i ne odražava naknadne promjene koje su izvršili drugi korisnici.

RAZLIKUJ

Vraća različite zapise iz tablice; Za razliku od prethodnog predikata koji je gledao samo sadržaj odabranih polja, to čini u sadržaju cjelovitog zapisa, bez obzira na polja naznačena u klauzula ODABERI.

- ODABERITE DISTINCTROW Prezime DESDE Zaposlenici;

Ako tablica zaposlenika sadrži dva zapisa: Antonio López i Marta López, primjer predikata RAZLIKUJ vraća jedan zapis s vrijednošću Lopez u polju Prezime jer u tom polju ne traži duplikate. Ovaj posljednji primjer vraća dva zapisa s vrijednošću Lopez u prezimenu jer se u cijelom zapisu traže ne duplikati.

instagram viewer