Въведение в ПОРЪЧКА ПО клауза в SQL
Клауза ORDER BY в SQL ни помага да категоризираме данните си във възходящ или низходящ ред, в зависимост от колоните на нашите таблици. ORDER BY е ключовата дума, използвана в нашата заявка, за да ни помогне да сортираме данните. По подразбиране няколко бази данни категоризират резултатите, върнати от заявката, във възходящ ред. За да подредим данните, присъстващи в записите, в низходящ ред, използваме ключовата дума DESC в нашата заявка. Имаме и ключовата дума ASC да категоризираме данните във възходящ ред, макар че най-вече не ги използваме поради настройките по подразбиране на базата данни.
Параметри на ORDER BY клауза в SQL
- име на колона : Това посочва името на колоната, което искаме да извлечем въз основа на които да се подреждат данните.
- table_name: Това посочва името на таблицата, от която трябва да се получат записите. Трябва да имаме поне едно име на таблицата в този параметър.
- WHERE условие: Това е незадължителен параметър. Клаузата WHERE съдържа условията, които трябва да изпълним, за да бъдат избрани данните.
- ASC : Това е ключовата дума, използвана за сортиране на данните на колоните във възходящ ред. Ако не е спомената нито една ключова дума, данните се подреждат във възходящ ред по подразбиране.
- DESC: Това е ключовата дума, използвана за сортиране на данните на колоните в низходящ ред.
- |: Това е само индикатор за "ИЛИ", тъй като ние трябва да използваме ASC или DESC в нашата заявка съответно за резултатите.
ПОРЪЧАЙТЕ С клауза
Синтаксисът на ORDER BY е:
SELECT column_name(s)
FROM table_name(s)
(WHERE condition) (ORDER BY column1, column2, .. columnN) (ASC | DESC);
Синтаксис за сортиране на данни според една колона
За да сортираме данните на таблицата въз основа на една колона във възходящ или низходящ ред, можем или да използваме ключовите думи ASC или DESC. В нашия пример ще сортираме данни във възходящ ред, като по този начин използваме ключовата дума ASC.
Синтаксис
SELECT * FROM table_name ORDER BY column_name ASC
Синтаксисът за сортиране на данни според няколко колони
За да сортираме данните на таблицата въз основа на няколко колони във възходящ или низходящ ред, можем или да използваме ключовите думи ASC или DESC. За да споменем няколко колони, според които ще сортираме данни, трябва да споменем имената на колоните, разделени от оператора със запетая (, ). В нашия пример ще сортираме данни във възходящ ред, като по този начин използваме ключовата дума ASC.
Синтаксис
SELECT * FROM table_name ORDER BY column1 ASC, column2 ASC
Примери за поръчка по клауза
Нека разгледаме различни примери, за да разберем по-добре клаузата ПОРЪЧКА ПО
1. Пример за сортиране на резултатите във възходящ ред
За да категоризираме резултатите във възходящ ред, можем да използваме ключовата дума ASC. Ако не е предоставена нито ключова дума, нито ASC, нито DESC, след това стандартният ред за сортиране е възходящ ред. Нека разберем това с помощта на пример. Имаме таблица на служителите.
EmployeeID | EmployeeLastName | EmployeeFirstName | Имейл ID |
001 | Доналд | Jo | |
002 | ковач | Джейми | |
003 | Джоунс | Ейми | |
004 | Рейнолдс | Анди | |
005 | Томас | излет | |
006 | кафяв | Дан |
Когато се опитаме да подредим резултатите във възходящ ред на фамилното име на служителя, можем да използваме следното изявление, а резултатът, който следва, се показва в таблицата след.
SELECT *
FROM Employee
ORDER BY EmployeeLastName;
резултат
EmployeeID | EmployeeLastName | EmployeeFirstName | Имейл ID |
006 | кафяв | Дан | |
001 | Доналд | Jo | |
003 | Джоунс | Ейми | |
004 | Рейнолдс | Анди | |
002 | ковач | Джейми | |
005 | Томас | излет |
Този пример връща всички записи от таблицата на служителя, подредени във възходящ ред според полето EmployeeLastName. Можем също така да използваме ключовата дума ASC както следва, за да получим същия резултат.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
2. Пример за сортиране на резултатите в низходящ ред
Използваме ключовата дума DESC, когато искаме да сортираме данните си в низходящ ред, в клаузата ни ПОРЪЧАЙТЕ. Нека разберем това с помощта на пример. Имаме същата таблица Служител, съдържаща следните данни.
EmployeeID | EmployeeLastName | EmployeeFirstName | Имейл ID |
001 | Доналд | Jo | |
002 | ковач | Джейми | |
003 | Джоунс | Ейми | |
004 | Рейнолдс | Анди | |
005 | Томас | излет | |
006 | кафяв | Дан |
Нуждаем се само от служители, чийто идентификационен номер на служителя е по-голям от 2 и се нуждаем от нашите данни, подредени в низходящ ред. Използваме следния SQL оператор за същото и получаваме таблицата с резултати с само 4 записа.
SELECT *
FROM Employee
WHERE EmployeeID > 002
ORDER BY EmployeeID DESC;
Резултат:
EmployeeID | EmployeeLastName | EmployeeFirstName | Имейл ID |
006 | кафяв | Дан | |
005 | Томас | излет | |
004 | Рейнолдс | Анди | |
003 | Джоунс | Ейми |
3. Пример за сортиране на резултатите по тяхната относителна позиция
Можем също така да подредим данните си по относителната позиция на колоните, където 1 представлява първото поле, 2 представлява второто поле, 3 представлява третото поле и така нататък. Нека се опитаме да подредим данните в нашата таблица на служителите според относителните позиции.
EmployeeID | EmployeeLastName | EmployeeFirstName | електронна поща |
001 | Доналд | Jo | |
002 | ковач | Джейми | |
003 | Джоунс | Ейми | |
004 | Рейнолдс | Анди | |
005 | Томас | излет | |
006 | кафяв | Дан |
Използвайки SQL израза по следния начин, можем да подредим данните в низходящ ред на EmployeeID. Ние също така твърдим, че се нуждаем само от две колони от таблицата, а именно EmployeeeID и EmployeeLastName, заедно с клаузата WHERE, за да споменем, че не искаме нито един ред, съдържащ EmployeeID 003.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
резултат
EmployeeID | EmployeeLastName |
006 | кафяв |
005 | Томас |
004 | Рейнолдс |
002 | ковач |
001 | Доналд |
Тъй като колоната в позиция 1 е EmployeeID, наборът от резултати се сортира според EmployeeID.
заключение
В SQL операторът SELECT не връща данни в никакъв конкретен ред. За да гарантираме конкретна поръчка, използваме клаузата ORDER BY. ПОРЪЧАЙТЕ ПО сортиране въз основа на една или повече колони. Записите се връщат във възходящ или низходящ ред. Ако не е предоставена ключова дума ASC или DESC, резултатите ще бъдат категоризирани във възходящ ред.
Препоръчителен член
Това е ръководство за клаузата ORDER BY в SQL. Тук обсъждаме параметрите и различните примери на клауза ORDER BY заедно със синтаксиса. Можете да разгледате и другите ни предложени статии, за да научите повече -
- Предимства на NoSQL
- Инструменти за управление на SQL
- T-SQL стринг функции
- Типове данни PostgreSQL
- Различни видове SQL данни с примери