Ms sql sortiranje. ORDER BY klauzula

Dom / Operativni sistemi

Klauzula ORDER BY u Accessu sortira zapise vraćene upitom uzlaznim ili silaznim redoslijedom vrijednosti navedenih polja.

Sintaksa

SELECT field_list
IZ sto
GDJE izbor_uvjet
[, polje2 ][, ...]]]

SELECT izraz koji sadrži ORDER BY klauzulu uključuje sljedeće elemente:

Bilješke

Klauzula ORDER BY je opciona. Treba ga koristiti kada trebate prikazati podatke u sortiranom obliku.

Zadani redoslijed sortiranja je rastući (A do Z, 0 do 9). Dva primjera ispod prikazuju sortiranje imena zaposlenika po prezimenu.

ODABERITE Prezime, Ime
OD zaposlenih
ORDER BY Prezime;
ODABERITE Prezime, Ime
OD zaposlenih
ORDER BY Prezime ASC;

Za sortiranje po opadajućem redoslijedu (Z do A, 9 do 0), dodajte rezerviranu riječ DESC na kraju svakog polja po kojem želite sortirati zapise. Primjer ispod sortira imena zaposlenika po opadajućem redoslijedu plaće.

SELECT Prezime, Plata
OD zaposlenih
ORDER BY Plaća DESC, Prezime;

Ako navedete polje koje sadrži Memo podatke ili OLE objekte u ORDER BY klauzuli, doći će do greške. Mehanizam baze podataka Microsoft Accessa ne podržava sortiranje prema ovim tipovima polja.

Klauzula ORDER BY je obično posljednji element u SQL izrazu.

Možete uključiti dodatna polja u klauzulu ORDER BY. Zapisi se prvo sortiraju prema polju koje je prvo navedeno u klauzuli ORDER BY. Zapisi sa istim prvim vrijednostima polja se zatim sortiraju po drugom navedenom polju i tako dalje.


Sljedeći ciklus:

Korak 8: Jednostavno sortiranje

Ako rezultat vašeg SQL upit trebalo bi da postane izvorni materijal određenom izvještaju, onda pitanje sortiranja podataka u njemu postaje izuzetno važno, jer je za osobu koja čita izvještaj koji nije pravilno sortiran vrlo teško da u njemu brzo pronađe informaciju koja mu je potrebna. Za sortiranje podataka po stupcima rezultata upita (u našem slučaju po poljima tablice), SQL koristi ključnu riječ ORDER BY. U nastavku je dat primjer najjednostavnijeg sortiranja. Osnova je uzeta iz zahtjeva iz koraka 2: “Zahtjev s jednostavnim kriterijem odabira.” Zaposlene sortiramo po polju S_NAME (puno ime).

SELECT S_NAME, S_EXPERIENCE OD D_STAFF GDJE S_EXPERIENCE

Sortiranje rezultata SQL upita po jednom polju.

Korak 9. Kompleksno sortiranje

Često je, pa čak i gotovo uvijek, potrebno sortirati podatke po više od jedne kolone i ne uvijek uzlaznim redoslijedom. SQL sintaksa pretpostavlja iza ključne riječi ORDER BY listu kolona odvojenih zarezom, kao i metodu sortiranja za svaku kolonu: u rastućem redoslijedu vrijednosti - ASC ili u opadajućem redoslijedu - DESC. U donjem primjeru prikazujemo evidenciju za sve zaposlene u opadajućem redoslijedu njihovog radnog staža. Zaposlene sa istim stažom sortiramo po abecednom redu.

SELECT S_EXPERIENCE, S_NAME FROM D_STAFF ORDER BY S_EXPERIENCE DESC, S_NAME ASC


Sortiranje rezultata SQL upita po dva polja.

Vrlo često se koristi obrnuti redoslijed sortiranja sa stupcima poput [datum]. Ako datum pohranjuje, na primjer, datum kada je informacija unesena, onda se pri obrnutom sortiranju oni zapisi koji su nedavno dodani u odnosu na ostale pojavljuju na samom početku liste. Ako upit dohvaća najave vijesti iz baze podataka, tada dobivamo listu najava sortiranih u opadajućem redoslijedu prema njihovoj relevantnosti, što može biti izuzetno korisno, budući da se najave obično čitaju od vrha do dna, pa čak i na stranicama s vijestima, ne sve prikazani su, ali samo nekoliko najsvježijih.

Često postoji potreba da se rezultat upita prikaže određenim redoslijedom, na primjer, po abecedi. U tu svrhu, DBMS ima posebnu funkciju za SQL jezik- sortiranje. U tom slučaju, programer može birati koja polja i kojim redoslijedom će se pojaviti kako bi postigao željeni rezultat, a da ne koristi ozbiljne vještine programiranja.

Šta je sortiranje u bazi podataka?

Rad sa bazama podataka je stalno povezan s velikom količinom informacija koje je potrebno organizirati. Trenutno postoji veliki broj DBMS-ova sa širokim spektrom funkcija, od kojih su najpopularniji Oracle i MS SQL. Sortiranje informacija, kao jedan od glavnih postupaka u radu sa bazama podataka, obezbeđeno je posebnom ugrađenom funkcijom u svakoj od njih.

Podaci o rangiranju vam omogućavaju da pojednostavite proces pretraživanja, au nekim slučajevima pomažu u rješavanju određenih problema ili optimiziranju rada programa. SQL sortiranje se vrši po posebno odabranom polju, a ako je potrebno, ako postoje identične vrijednosti u elementima ovog polja, možete odrediti dodatne opcije, definiranje lokacije linija.

Naredba sortiranja

SQL sortiranje u bazi podataka je omogućeno korištenjem funkcije ORDER BY. Dakle, prilikom izlaza informacija iz baze podataka, nakon specificiranja kolona i tabela iz kojih će se čitati, morate u upitu navesti naredbu za sortiranje, a zatim definirati polje ili polja po kojima će se sortiranje izvršiti.

Na primjer, ako trebate dobiti podatke iz polja Ime i Dob iz tablice Ljudi, dok rezultat prikazujete abecednim redom u koloni Ime, tada će vam pomoći sljedeći upit: ODABERITE Ime, dob OD Ljudi REDITE PO Imenu.

Kako postaviti redoslijed sortiranja?

Savremeni uslovi postavljaju pred programere različite zadatke, a ponekad je potrebno unapred odrediti kojim će redosledom biti prikazan rezultat - u opadajućem ili rastućem redosledu, po abecednom redu ili obrnutim redosledom? A da biste to učinili u SQL-u, redoslijed sortiranja se određuje dodavanjem ključne riječi u upit. Nakon odabira polja i tabela iz kojih će se dobiti željene informacije, morate dodati ORDER BY, a zatim odrediti naziv kolone po kojoj želite sortirati.

Da biste dobili obrnuti redoslijed, morate navesti parametar DESC iza imena. Ako je potrebno poredati elemente prema dva ili više kriterijuma, kolone se označavaju odvojene zarezima, a prioritet u rangiranju imaće polje koje je prvo na listi. Vrijedi napomenuti da parametar DESC omogućava sređivanje elemenata obrnutim redoslijedom samo u jednom polju, iza čijeg imena je navedena ova ključna riječ, pa se po potrebi mora navesti u svim odabranim stupcima.

Alternativne metode sortiranja

Ako nije moguće koristiti ugrađenu SQL funkciju sortiranja, možete napisati jedan od dobro poznatih algoritama. Ako trebate postići najbrži redoslijed elemenata, trebali biste koristiti metodu zasnovanu na dijeljenju niza elemenata na pola. Takođe su veoma popularne metode rangiranja „mehurića“, u kojima su dve susjedni elementi zamijenite mjesta u slučaju pogrešnog postavljanja, "piramidalno sortiranje", koje šalje najveći element na kraj liste, i "umetanje sortiranja", koje unaprijed određuje lokaciju svakog elementa redom.

Samostalno pisanje algoritma neće značajno povećati brzinu sortiranja, ali će doprinijeti razvoju vještina programiranja, a također će vam omogućiti da modificirate proces prilagođavanjem sheme rangiranja određenoj bazi podataka kako biste poboljšali efikasnost programa.

Prilikom preuzimanja podataka može biti važno dobiti ih u određenom uređenom obliku. Sortiranje se može izvršiti po bilo kojim poljima sa bilo kojim tipom podataka. Ovo može biti uzlazno ili silazno sortiranje za numerička polja. Za polja znakova (teksta), ovo se može sortirati po abecednom redu, iako se u suštini sortira i po rastućem ili opadajućem redoslijedu. Također se može izvoditi u bilo kojem smjeru - od A do Z, i obrnuto od Z do A.

Suština procesa sortiranja je svođenje niza na određeni red. Više o sortiranju možete saznati u članku “Algoritmi za sortiranje”, na primjer, sortiranje proizvoljnog niza brojeva uzlaznim redoslijedom:

2, 4, 1, 5, 9

trebalo bi rezultirati uređenim nizom:

1, 2, 4, 5, 6

Isto tako, kada sortirate uzlaznim redoslijedom vrijednosti niza:

Ivanov Ivan, Petrov Petr, Ivanov Andrej

rezultat bi trebao biti:

Ivanov Andrej, Ivanov Ivan, Petrov Petrov

Ovdje je red "Andrej Ivanov" pomaknut na početak, budući da se poređenje nizova vrši karakter po znak. Oba reda počinju istim znakovima "Ivanov". S obzirom na to da simbol „A“ u riječi „Andrey“ dolazi ranije u abecedi od simbola „I“ u riječi „Ivan“, ovaj red će biti postavljen ranije.

Sortiranje u SQL upitu

Da biste izvršili sortiranje, morate dodati naredbu ORDER BY u niz upita. Nakon ove naredbe označava se polje po kojem se vrši sortiranje.

Za primjer koristimo sto robe:

br
(broj proizvoda)
naslov
(ime)
cijena
(cijena)
1 Mandarin50
2 Lubenica120
3 Ananas80
4 Banana40

Podaci su ovdje već poredani po koloni "num". Sada, napravimo upit koji će prikazati tabelu s proizvodima sortiranim po abecednom redu:

SELECT * OD robe NARUDŽI PREMA naslovu

SELECT * FROM goods – određuje odabir svih polja iz tabele robe;

ORDER BY – naredba za sortiranje;

title – kolona po kojoj će se izvršiti sortiranje.

Rezultat izvršavanja takvog zahtjeva je sljedeći:

br naslov cijena
3 Ananas80
2 Lubenica120
4 Banana40
1 Mandarin50

Takođe možete sortirati za bilo koje polje tabele.

Smjer sortiranja

Podrazumevano, naredba ORDER BY sortira se uzlaznim redoslijedom. Da biste ručno kontrolirali smjer sortiranja, navedite ključnu riječ ASC (uzlazno) ili DESC (opadajuće) nakon naziva stupca. Dakle, da biste našu tabelu prikazali u opadajućem redoslijedu cijena, trebate postaviti upit ovako:

SELECT * OD robe NARUDŽITI PO CIJENI OPIS

Poredaj po rastućoj cijeni bit će:

SELECT * OD robe NARUDŽITI PO CIJENI ASC

Sortiranje po više polja

SQL dozvoljava sortiranje po više polja odjednom. Da biste to učinili, nakon naredbe ORDER BY, potrebna su polja odvojena zarezima. Redoslijed rezultata upita bit će konfiguriran istim redoslijedom u kojem su navedena polja sortiranja.

stupac1 stupac2 stupac3
3 1 c
1 3 c
2 2 b
2 1 b
1 2 a
1 3 a
3 4 a

Hajde da sortiramo tabelu prema sledećim pravilima:

SELECT * IZ moje tablice ORDER BY stupac 1 ASC, stupac 2 DESC, stupac 3 ASC

One. prva kolona je uzlazna, druga silazna, treća opet uzlazna. Upit će poredati redove po prvoj koloni, a zatim, bez kršenja prvog pravila, po drugoj koloni. Zatim, takođe, bez kršenja postojećih pravila, prema trećem. Rezultat će biti ovakav skup podataka:

stupac1 stupac2 stupac3
1 3 a
1 3 c
1 2 a
2 2 b
2 1 b
3 1 a
3 1 c

Redoslijed naredbe ORDER BY u upitu

Sortiranje redova se najčešće vrši zajedno sa uslovom za odabir podataka. Naredba ORDER BY se postavlja iza uvjeta odabira WHERE. Na primjer, odabiremo proizvode s cijenom manjom od 100 rubalja, sortirane po nazivima abecednim redom:

SELECT *OD robe GDJE cijena 100 NARUČI PO CIJENI ASC

© 2024 ermake.ru -- O popravci računara - Informativni portal