Главная SQL Order By
E-mail Печать PDF

ORDER BY - используется для сортировки результата.

ORDER BY - используется для сортировки результатов в указанной колонке.

ORDER BY - позволяет сортировать записи в возрастающем порядке по умолчанию.

Если вы хотите отсортировать записи в порядке убывания, то можно использовать ключевое слово DESC.

Сортировка SQL ORDER BY

1
2
3
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC

Пример ORDER BY

Есть таблица "Persons":

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger

Итак, мы хотим выбрать все записи из приведенной выше таблицы, однако, мы хотим, чтобы они были упорядоченны по фамилии.

Для этого используем такой запрос:

1
2
SELECT * FROM Persons
ORDER BY LastName

Результат запроса:

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
4 Nilsen Tom Vingvn 23 Stavanger
3 Pettersen Kari Storgt 20 Stavanger
2 Svendson Tove Borgvn 23 Sandnes

Пример ORDER BY DESC

Итак, мы хотим выбрать все записи из таблицы "Persons", однако, мы хотим, чтобы они были упорядоченны по фамилии и результат был выдан по убыванию.

Для этого используем такой запрос:

1
2
SELECT * FROM Persons
ORDER BY LastName DESC

Результат запроса:

P_IdLastNameFirstNameAddressCity
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger
1 Hansen Ola Timoteivn 10 Sandnes

Комментарии

 
+21 #1 Betmen 2010-02-24 19:37 Не указан метод случайной сортировки (Random)

MySql:

SELECT [column] FROM [table]
ORDER BY RAND()

PostgreSQL:

SELECT [column] FROM [table]
ORDER BY RANDOM()

Microsoft SQL Server:

SELECT [column] FROM [table]
ORDER BY NEWID()

IBM DB2:

SELECT [column], RAND() as IDX
FROM [table]
ORDER BY IDX

Oracle:

SELECT [column] FROM [table]
ORDER BY dbms_random.value
Цитировать
 
 
+3 #2 Игорь 2010-08-31 05:19 а смысл есть в рандоме если задача запроса сортировать и упорядочить? Цитировать
 
 
+8 #3 Betmen 2010-09-04 23:27 Игорь, есть! Мне он потребовался когда я писал тестилку и мне надо было из кучи тем, в каждой куча вопросов, выбрать по три (пять, что не принципиально)с лучайных вопроса из каждой темы для "общего" теста. вот берем на SQL:
for i:=1 to 5 do

select top 3 qwest, them from questions Where them = i ORDER BY newid();

в итоге мы выбираем по три случайных вопроса из тем с первой по пятую
Цитировать
 
 
0 #4 Azat 2010-11-09 23:43 Подскажите как указать в ORDER BY RAND() мною желаемое количество записей.
И еще говорят, если в базе огромное количество строк (записей)- это есть огромнейшая нагрузка при использовании ORDER BY RAND?
Спасибо.
Цитировать
 
 
+2 #5 jura4x01 2011-01-12 19:41 А как создать запрос, который будет выбирать из таблицы все данные, но сортировать их будет по ВОЗРАСТАНИЮ КОЛИЧЕСТВА ПОВТОРЕНИЙ НАЗВАНИЙ?
т.е. если есть таблица городов, то вверху результата должны быть названия неповторяющиеся вообще, а внизу соответственно самый длинный список городов с одинаковым названием!
Цитировать
 
 
+3 #6 oo7 2011-03-25 22:11 подскажите, пожалуйста, как сделать запрос, чтобы номера квартир шли по возрастанию, но проблема в том что есть квартиры с буквенным обозначением (например 127А) Цитировать
 

Авторизация

Nice Ajax Poll

Какое из моих расширений самое лучшее?

Статистика



Реклама