Сортировка данных
Сортировка данных
Для сортировки данных используется предложение ORDER BY
3.1. Сортировка данных по одному столбцу
При отсутствии сортировки данные выводятся в том порядке, в котором они находятся в таблице. Это может быть порядок, в котором они изначально добавлялись в таблицу. В теории реляционных баз данных говорится, что последовательность выбранных данных не имеет смысла, если не был специально указан порядок сортировки. Для точной сортировки выбранных при помощи оператора SELECT данных используется предложение ORDER BY, которое размещается последним в операторе SELECT. Сортировка осуществляется по алфавиту.
SELECT prod_name
FROM Products
ORDER BY prod_name;
--------------------------
prod_name
Рекомендуемые материалы
12 inch teddy bear
18 inch teddy bear
8 inch teddy bear
Bird bean bag toy
Fish bean bag toy
King doll
Queen doll
Rabbit bean bag toy
Raggedy Ann
3.2. Сортировка данных по нескольким столбцам
Чтобы осуществить сортировку по нескольким столбцам, надо указать имена столбцов через запятую. Сначала сортируются данные по первому столбцу, внутри по второму и т.д.
В примере выбираются три столбца, а результат сортируется по двум из них – сначала по цене, а затем по названию
SELECT prod_id, prod_price, prod_name выбор столбцов
FROM Products из таблицы
ORDER BY prod_price, prod_name; сортировать по столбцам
--------------------------
prod_id prod_price prod_name
BNBG02 3,49р. Bird bean bag toy
BNBG01 3,49р. Fish bean bag toy
BNBG03 3,49р. Rabbit bean bag toy
RGAN01 4,99р. Raggedy Ann
BR01 5,99р. 8 inch teddy bear
BR02 8,99р. 12 inch teddy bear
RYL01 9,49р. King doll
RYL02 9,49р. Queen doll
BR03 11,99р. 18 inch teddy bear
3.3. Сортировка данных по положению столбца
Порядок сортировки можно указать не только по именам столбцов, но и по относительному положению столбца, т.е. по номеру столбца.
SELECT prod_id, prod_price, prod_name выбор столбцов
FROM Products из таблицы
ORDER BY 2, 3; сортировать по номерам столбцов
--------------------------
prod_id prod_price prod_name
BNBG02 3,49р. Bird bean bag toy
BNBG01 3,49р. Fish bean bag toy
BNBG03 3,49р. Rabbit bean bag toy
RGAN01 4,99р. Raggedy Ann
BR01 5,99р. 8 inch teddy bear
BR02 8,99р. 12 inch teddy bear
RYL01 9,49р. King doll
RYL02 9,49р. Queen doll
BR03 11,99р. 18 inch teddy bear
Это нельзя использовать при сортировке по столбцам, не указанным в списке SELECT. Но можно использовать в одном операторе и реальные имена столбцов, и их относительное положение.
3.4. Указание направления сортировки
По умолчанию осуществляется сортировка по возрастанию от A до Я. Для изменения порядка – по убыванию, используется в ORDER BY ключевое слово DESC.
В примере сортируется продукция по одному столбцу - по цене в убывающем порядке, т.е. сначала идут самые дорогие товары.
SELECT prod_id, prod_price, prod_name выбор столбцов
FROM Products из таблицы
ORDER BY prod_price DESC; сортировать по столбцу по убыванию
--------------------------
prod_id prod_price prod_name
BR03 11,99р. 18 inch teddy bear
RYL02 9,49р. Queen doll
RYL01 9,49р. King doll
BR02 8,99р. 12 inch teddy bear
BR01 5,99р. 8 inch teddy bear
RGAN01 4,99р. Raggedy Ann
BNBG03 3,49р. Rabbit bean bag toy
BNBG02 3,49р. Bird bean bag toy
BNBG01 3,49р. Fish bean bag toy
В следующем примере производится сортировка по нескольким столбцам. Сначала продукция сортируется по цене в убывающем порядке, а затем по возрастанию по названию продукта.
SELECT prod_id, prod_price, prod_name выбор столбцов
FROM Products из таблицы
ORDER BY prod_price DESC, prod_name; сортировать один столбец по
убыванию, другой по возрастанию
--------------------------
prod_id prod_price prod_name
BR03 11,99р. 18 inch teddy bear
RYL01 9,49р. King doll
RYL02 9,49р. Queen doll
BR02 8,99р. 12 inch teddy bear
BR01 5,99р. 8 inch teddy bear
RGAN01 4,99р. Raggedy Ann
Ещё посмотрите лекцию "Лекция 13 - Терроризм" по этой теме.
BNBG02 3,49р. Bird bean bag toy
BNBG01 3,49р. Fish bean bag toy
BNBG03 3,49р. Rabbit bean bag toy
Ключевое слово DESC применяется только к тому столбцу, после которого оно указано. Если надо отсортировать в порядке убывания по нескольким столбцам, то надо указывать для каждого из них ключевое слово DESC.
Ключевое слово DESC – это сокращение от DESCENDING (убывание). Противоположное ему слово ASCENDING (возрастание) – сокращение ASC можно указывать в предложении, но этого, как правило, не делают.
Примечание. При лексикографическом порядке сортировки А считается идентичным а. Это выполняется для большинства СУБД. В некоторых СУБД администратор может при необходимости это изменить.