SQL poizvedbe s predikatom ALL, TOP, DISTINCT, DISTINCTROW

  • Jul 26, 2021
click fraud protection

Predikat je vključen med stavek in prvo ime polja za pridobitev, možni predikati so:

  • VSE: Vrne vsa polja v tabeli
  • VRH: Vrne določeno število zapisov iz tabele
  • IZRAZIT: Preskoči zapise, katerih izbrana polja se popolnoma ujemajo
  • DISTINCTROW: Preskočite podvojene zapise na podlagi celotnega zapisa in ne samo izbranih polj.

VSE (* se lahko uporabi namesto tega):

Oglasi

Če ni vključen noben od predikatov, se predpostavlja ALL. Database Engine izbere vse zapise, ki ustrezajo pogojem stavka SQL. Ni priročno zlorabljati tega predikata, ker prisilimo mehanizem baze podatkov, da analizira strukturo tabele, da bi ugotovili, katera polja vsebuje, je veliko hitreje določiti seznam polj želeno.

Oglasi

IZBERI VSE OD Zaposleni;

IZBERI * DESDE Zaposleni;

Oglasi

VRH

Vrne določeno število zapisov, ki spadajo med začetek ali konec obsega, ki ga določa stavek ORDER BY. Recimo, da želimo pridobiti imena prvih 25 študentov študijskega leta 1994:

Oglasi

- IZBERITE TOP 25 Ime, Priimek DESDE Študenti

- NAROČITE PO Opomba DESC;

Oglasi

Če klavzula ni vključena NAROČITE PO, bo poizvedba vrnila poljuben nabor 25 zapisov iz tabele Študenti VRH ne izbira med enakimi vrednostmi. V zgornjem primeru, če sta povprečje 25. in 26. razreda enake, bo poizvedba vrnila 26 zapisov. Uporabite lahko rezervirano besedo ODSTOTEK za vrnitev določenega odstotka zapisov, ki spadajo na začetek ali konec obsega, določenega v klavzuli NAROČITE PO. Recimo, da namesto prvih 25 študentov želimo 10 odstotkov tečaja:

- IZBERITE TOP 10 ODSTOTEK Ime priimek DESDE Študenti NAROČITE PO Opomba DESC;

Vrednost, ki sledi VRH mora biti nepodpisano celo število.VRH ne vpliva na morebitno posodobitev poizvedbe.

IZRAZIT

V izbranih poljih preskočite zapise, ki vsebujejo podvojene podatke. Tako, da so vrednosti vsakega polja, navedenega v stavku IZBERI vključeno v poizvedbo, mora biti enolično.

Na primer, več zaposlenih, naštetih v tabeli Zaposleni, ima lahko isti priimek. Če dva zapisa vsebujeta Lopeza v polju Priimek, naslednji stavek SQL vrne en zapis:

- IZBERITE DISTINCT Priimek DESDE Zaposleni;

Z drugimi besedami, predikat IZRAZIT vrne tiste zapise, katerih polja so navedena v klavzuli IZBERI imajo drugačno vsebino. Rezultat poizvedbe, ki uporablja IZRAZIT ni nadgradljiv in ne odraža poznejših sprememb drugih uporabnikov.

DISTINCTROW

Vrne različne zapise iz tabele; Za razliko od prejšnjega predikata, ki je gledal samo vsebino izbranih polj, to stori v vsebini celotnega zapisa, ne glede na polja, navedena v klavzulo IZBERI.

- IZBERITE DISTINCTROW Priimek DESDE Zaposleni;

Če tabela zaposlenih vsebuje dva zapisa: Antonio López in Marta López, primer predikata IZRAZIT vrne en zapis z vrednostjo Lopez v polju Priimek, saj v tem polju ne išče dvojnikov. Ta zadnji primer vrne dva zapisa z vrednostjo Lopez v priimku, saj se v celotnem zapisu iščejo dvojniki.

instagram viewer