Acesta specifică coloana sau expresie pe care pentru a sorta setul de rezultate de interogare. coloana de sortare poate fi specificat folosind numele sau pseudonimul unei coloane sau a unui număr întreg nenegativ reprezentând poziția coloanei din lista de selecție.
Puteți specifica mai multe coloane de sortare. Numele coloanelor trebuie să fie unice. Secvența coloanelor de sortare din clauza ORDER BY definește organizarea comandat din setul de rezultate. Cu alte cuvinte, setul de rezultate este sortat la prima coloană, apoi a ordonat lista este sortată de-a doua și așa mai departe. D.
Numele coloanelor, care sunt cuprinse în referința teza ORDER BY, trebuie să corespundă în mod unic coloană din lista de selecție sau coloana definită într-un tabel în clauza FROM de mai sus.
Aceasta indică faptul că comanda prin operație trebuie efectuată în conformitate cu parametrii de sortare specificați în collation_name argumentul. dar nu și în conformitate cu coloana de colaționare definite într-un tabel sau vizualizare. Valoarea Collation_name poate fi numele unui nume de colaționare Windows sau o compilație SQL. Pentru mai multe informații, consultați. În suportul Unicode și colaționare. Argumentul COLLATE se aplică numai pentru coloanele de tip char. varchar. NCHAR și nvarchar.
Indică valoarea comenzii de sortare în coloana specificată - crescător sau descrescător. Înțeles felul ASC de la mic la valori ridicate. Înțeles felul DESC de la mare la valori scăzute. Ordinea de sortare prestabilită - ASC. Valorile NULL sunt tratate ca cea mai mică valoare posibilă.
Indică numărul de run-off, care trebuie să fie trecut înainte de a începe liniile de retur ale expresiei de interogare. Această valoare poate fi o constantă întreagă sau o expresie a cărei valoare este mai mare decât zero sau egală cu zero.
offset_row_count_expression poate fi o variabilă, un parametru, sau o interogare imbricate returnează o constantă scalară. Când se utilizează o subinterogare nu ar trebui să invoce orice coloane definite în interogare exterioară. Cu alte cuvinte, nu poate fi corelat cu o solicitare externă.
ROW și ROWS sunt sinonime și sunt lăsate pentru compatibilitate cu standardul ANSI.
În ceea ce privește valoarea șir de interogare a deplasării este afișată în operatorul de interogare TOP atribut Offset.
Specifică numărul de rânduri care sunt returnate după procesarea ofertelor OFFSET. Această valoare poate fi o constantă întreagă sau o expresie a cărei valoare este mai mare decât una sau egală cu unu.
fetch_row_count_expression poate fi o variabilă, un parametru, sau o interogare imbricate returnează o constantă scalară. Când se utilizează o subinterogare nu ar trebui să invoce orice coloane definite în interogare exterioară. Cu alte cuvinte, nu poate fi corelat cu o solicitare externă.
FIRST și NEXT sunt sinonime și sunt prevăzute pentru compatibilitate cu standardul ANSI.
ROW și ROWS sunt sinonime și sunt lăsate pentru compatibilitate cu standardul ANSI.
În ceea ce privește valoarea de deplasare șir de interogare este afișată în atributul rows sau declarație de interogare Top TOP.
Evitați specificarea coloanelor din clauza ORDER BY în numărul de serie din lista de selecție. De exemplu, deși instrucțiunea SELECT productId Nume de la comanda Production.Production BY 2 este adevărat, nu ar fi foarte clar pentru alți utilizatori, în comparație cu cazul în care coloanele sunt listate după nume. În plus, în cazul în care lista de selecție se va schimba, in special a schimba coloanele, se adaugă coloane noi, acest lucru va necesita modificări în clauza ORDER BY pentru a evita rezultate neașteptate.
SELECT TOP instrucțiuni (N) indică întotdeauna ORDER propunerea BY. Aceasta este singura modalitate de a-un mod previzibil să se constate liniile care au fost prelucrate propunerea TOP. Pentru informații suplimentare. Vezi TOP (Transact-SQL).
Atunci când este utilizat în instrucțiunea SELECT. În ordine de propuneri pentru inserarea rânduri dintr-un alt rând inserați în această ordine nu este garantată.
Utilizarea OFFSET și FETCH în prezentare nu se va schimba proprietățile sale Updateability.
Nici o restricție privind numărul de coloane din clauza ORDER BY, dar dimensiunea totală a coloanelor enumerate în acesta nu poate depăși 8060 bytes.
Tipuri de coloane ntext. text. imagine. geografie. geometria și XML nu pot fi specificate în ORDER BY oferta.
Nu puteți specifica un număr întreg constant sau dacă argumentul order_by_expression este în funcția de clasificare. Pentru mai multe informații, consultați. Secționare pe Oferta (Transact-SQL).
Dacă numele în clauza FROM a tabelului, folosind un alias, alias-ul poate fi utilizat numai pentru a se referi la coloana a tabelului din clauza ORDER BY.
Numele coloanelor și pseudonime astfel cum sunt definite în clauza ORDER BY, trebuie să fie determinată în lista de selectare, în cazul în care instrucțiunea SELECT cuprinde una dintre următoarele afirmații sau declarații:
În plus, în cazul în care instrucțiunile sunt incluse operatorul UNION, except sau Intersect, numele și pseudonimele coloanelor trebuie să fie specificate în lista de selectare a primei solicitări (stânga).
Cererea conține UNIUNII operatorului, EXCEPȚIA sau Intersect, clauza ORDER BY este permisă numai la sfârșitul instrucțiunilor. Această limitare se aplică numai atunci când se utilizează UNIUNII operatorilor, exceptând, și intersectează într-un cereri de nivel superior, dar nu și în interogări imbricate. A se vedea punctul „Exemple“ de mai jos.
Clauza ORDER BY nu este validă în vizualizări, funcții inline, tabele derivate, și subinterogari, ca și în cazul în care nu exista oferte TOP sau OFFSET și FETCH. Aceste obiecte ORDER BY este utilizat numai pentru a determina rândurile returnate TOP proprietăți sau OFFSET și FETCH. Clauza ORDER BY nu garantează rezultate ordonate atunci când interoghează aceste structuri, în cazul în care nu este specificat în interogare în sine.
Oferte OFFSET si FETCH nu sunt acceptate în opinii și credințe, indexate anumite propuneri CHECK OPTION.
Propunerile FETCH și OFFSET pot fi utilizate în orice aplicație activată TOP aplicații și ORDER BY, cu următoarele restricții.
Clauza OVER nu acceptă OFFSET și FETCH.
Oferte OFFSET și FETCH nu pot fi specificate direct în instrucțiunea INSERT, UPDATE, îmbinați și Ștergețidin, dar pot fi specificate în interogări imbricate, definite de aceste instrucțiuni. De exemplu, instrucțiunile INSERT INTO ofertele SELECT OFFSET și FETCH pot fi specificate în instrucțiunea SELECT.
Cererea conține UNIUNII operatorului, EXCEPȚIA sau Intersect, oferă OFFSET și FETCH pot fi specificate numai în interogare finală, care stabilește ordinea rezultatelor interogării.
Nu pot fi combinate cu TOP OFFSET și FETCH într-o singură expresie de interogare (în același domeniu de interogare).
Pentru paginare și pentru a limita numărul de rânduri trimise la o aplicație client, se recomandă utilizarea unei preluări și Decalaj propuneri, mai degrabă decât o propunere TOP.
Utilizați ca o soluție pentru propuneri de paginare OFFSET și FETCH necesită o singură interogare pentru fiecare „pagina“ a datelor returnate la aplicația client. De exemplu, pentru a returna rezultate de interogare în blocuri de 10 linii, este necesar să se execute o interogare pentru a prelua rândurile de la 1 la 10, și apoi din nou pentru a prelua rândurile de la 11 la 20 și așa mai departe. Fiecare cerere este efectuată în mod independent și în nici un fel asociat cu alte cereri. Acest lucru înseamnă că, în loc cu ajutorul cursorului în cazul în care interogarea este executată o singură dată, iar starea curentă este stocată pe serverul pe care este responsabil pentru monitorizarea stării aplicației client. Pentru a obține rezultate consistente între solicitările de propuneri OFFSET și FETCH, trebuie să fie îndeplinite următoarele condiții.
Datele de bază utilizate de cererea trebuie să fie aceeași. Cu alte cuvinte, orice proces de linie cererea nu ar trebui să fie actualizate sau toate paginile executate cereri de interogare care urmează să fie efectuate într-o singură tranzacție folosind un instantaneu sau izolarea tranzacție serializabil. Pentru mai multe informații despre nivelurile de izolare tranzacție, vezi. A se vedea SET TRANZACȚIE IZOLARE LEVEL (Transact-SQL).
Licitați ORDER BY-o coloană sau o combinație de coloane care sunt garantate unic.
. Exemplu „Efectuarea interogări multiple într-o singură tranzacție“, în secțiunea „Exemple“ A se vedea mai jos în această secțiune.