Norāda ar SQL vaicājumiem atlasītos ierakstus.
Sintakse
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM tabulaPriekšrakstam SELECT ar šiem predikātiem ir šādas daļas:
Daļa |
Apraksts |
ALL |
Tiek pieņemts, ka, ja nav iekļauts kāds no predikātiem. Microsoft Access datu bāzes programma atlasa visus ierakstus, kas atbilst SQL priekšraksta nosacījumiem. Šie divi piemēri ir ekvivalenti un atgriež visus ierakstus no tabulas Employees (Darbinieki):
|
DISTINCT |
Izlaiž ierakstus, kas satur datu dublikātus atlasītajiem laukiem. Lai tiktu iekļautas vaicājuma rezultātos, katra priekšraksta SELECT lauka vērtībām jābūt unikālām. Piemēram, vairākiem darbiniekiem tabulā ir vienādi uzvārdi. Ja divos ierakstos laukā LastName ir iekļauts Bērziņš, šis SQL priekšraksts atgriež tikai vienu ierakstu, kas satur Bērziņš:
Ja tiek izlaists DISTINCT, šis vaicājums atgriež abus Smith ierakstus. Ja klauzulā SELECT ir vairāki lauki, vērtību kombinācijai no visiem laukiem ir jābūt unikālai, lai kāds ieraksts tiktu iekļauts rezultātos. Vaicājuma, kas izmanto DISTINCT, izvadi nav atjaunināma un neatspoguļo turpmākās citu lietotāju veiktās izmaiņas. |
DISTINCTROW |
Izlaiž datus, pamatojoties uz veseliem ierakstu dublikātiem, nevis tikai lauku dublikātiem. Piemēram, varat izveidot vaicājumu, kas laukā CustomerID savieno tabulas Customers un Orders. Tabulā Klienti nav lauku CustomerID dublikāti, taču tabulai Pasūtījumi ir daudzi pasūtījumi, jo katram klientam var būt vairāki pasūtījumi. Tālāk redzamais SQL priekšraksts parāda, kā var izmantot DISTINCTROW, lai izveidotu sarakstu ar uzņēmumiem, kuriem ir vismaz viens pasūtījums, bet nav detalizētas informācijas par šiem pasūtījumiem:
Ja tiek izlaists DISTINCTROW, šis vaicājums izveido vairākas rindas katram uzņēmumam, kuram ir vairāki pasūtījumi. DISTINCTROW efekts ir spēkā tikai tad, ja atlasāt laukus no dažām, bet ne visām vaicājumā izmantotajām tabulām. DISTINCTROW tiek ignorēta, ja vaicājumā ir ietverta tikai viena tabula, vai arī izvades lauki no visām tabulām. |
TOP n [PERCENT] |
Atgriež noteiktu skaitu ierakstu, kas atrodas klauzulas ORDER BY norādītā diapazona augšā vai apakšā. Pieņemsim, ka vēlaties no 1994. gada klases topajiem 25 skolēniem nosaukumos:
Ja neietverat klauzulu ORDER BY, vaicājums atgriezīs patvaļīgu 25 ierakstu kopu no tabulas Skolēni, kas apmierina klauzulu WHERE. Predikāts TOP ne izvēlas vienu no vienādām vērtībām. Iepriekšējā piemērā, ja divdesmit piektā un divdesmit sestā atzīmes atzīme ir vienāda, vaicājums atgriezīs 26 ierakstus. Rezervēto vārdu PERCENT var izmantot arī, lai atgrieztu noteiktu procentuālo vērtību no ierakstiem, kas atrodas klauzulas ORDER BY norādītā diapazona augšā vai apakšā. Pieņemsim, ka vēlaties, lai mazākie 25 skolēni no nodarbības būtu mazākie 10 procenti:
Predikāts ASC norāda apakšējo vērtību atgriešanu. Vērtībai, kas ir aiz TOP, jābūt neparakstītam veselam skaitlim. Top neietekmē to, vai vaicājums ir atjaunināms. |
tabula |
Tās tabulas nosaukums, no kuras tiek izgūti ieraksti. |