SQL-forespørgsler med ALL, TOP, DISTINCT, DISTINCTROW Predicate

  • Jul 26, 2021
click fraud protection

Prædikatet er inkluderet mellem klausulen og det første navn på feltet, der skal hentes, de mulige prædikater er:

  • ALLE: Returnerer alle felterne i tabellen
  • TOP: Returnerer et bestemt antal poster fra tabellen
  • DISTINCT: Spring poster, hvis valgte felter matcher fuldstændigt
  • DISTINCTROW: Spring over duplikatregistreringer baseret på hele posten og ikke kun de valgte felter.

ALLE (* kan bruges i stedet):

Annoncer

Hvis ingen af ​​prædikaterne er inkluderet, antages ALL. Databasemotoren vælger alle poster, der opfylder betingelserne for SQL-sætningen. Det er ikke praktisk at misbruge dette predikat, da vi tvinger databasemotoren til at analysere struktur af tabellen for at finde ud af de felter, den indeholder, er det meget hurtigere at angive listen over felter ønsket.

Annoncer

VÆLG ALLE FRA Medarbejdere;

VÆLG * DESDE Medarbejdere;

Annoncer

TOP

Returnerer et bestemt antal poster, der falder mellem begyndelsen eller slutningen af ​​et interval specificeret af en ORDER BY-klausul. Antag, at vi vil hente navnene på de første 25 studerende i akademisk år 1994:

Annoncer

- VÆLG TOP 25 Fornavn, Efternavn DESDE Studerende

- BESTIL BY Bemærk DESC;

Annoncer

Hvis klausulen ikke er inkluderet BESTIL, returnerer forespørgslen et vilkårligt sæt med 25 poster fra tabellen Students. Prædikatet TOP det vælger ikke mellem lige værdier. I eksemplet ovenfor vil forespørgslen returnere 26 poster, hvis gennemsnittet i 25. og 26. klasse er ens. Du kan bruge det reserverede ord PERCENT for at returnere en bestemt procentdel af poster, der falder i begyndelsen eller slutningen af ​​et interval, der er specificeret i klausulen BESTIL. Antag, at vi i stedet for de første 25 studerende vil have 10 procent af kurset:

- VÆLG TOP 10 PERCENT Navn efternavn DESDE Studerende BESTIL Bemærk DESC;

Den følgende værdi TOP skal være et usigneret heltal.TOP det påvirker ikke den mulige opdatering af forespørgslen.

DISTINCT

Spring de poster, der indeholder duplikatdata i de valgte felter, over. Så værdierne for hvert felt, der er anført i erklæringen VÆLG inkluderet i forespørgslen skal være unik.

For eksempel kan flere medarbejdere, der er anført i tabellen Medarbejdere, have samme efternavn. Hvis to poster indeholder Lopez i feltet Efternavn, følgende udsagn SQL returnerer en enkelt post:

- VÆLG DISTINCT Efternavn DESDE Medarbejdere;

Med andre ord prædikatet DISTINCT returnerer de poster, hvis felter er angivet i klausulen VÆLG har et andet indhold. Resultatet af en forespørgsel, der bruger DISTINCT den kan ikke opgraderes og afspejler ikke efterfølgende ændringer foretaget af andre brugere.

DISTINCTROW

Returnerer de forskellige poster fra en tabel; I modsætning til det foregående prædikat, der kun kiggede på indholdet af de valgte felter, det gør det i indholdet af den komplette post uanset de felter, der er angivet i klausul VÆLG.

- VÆLG DISTINCTROW Efternavn DESDE Medarbejdere;

Hvis medarbejdertabellen indeholder to poster: Antonio López og Marta López, eksemplet på prædikatet DISTINCT returnerer en enkelt post med værdien Lopez i feltet Efternavn, da den ikke søger nogen duplikater i dette felt. Dette sidste eksempel returnerer to poster med værdien Lopez i efternavnet, da der søges efter ikke-dubletter i hele posten.

instagram viewer