Программирование >>  Руководство по sql 

1 ... 32 33 34 [ 35 ] 36 37 38 ... 105


Результат:

pub id

price

title id

~о7зб

8096.25

21.59

PS1372

0736

81399.28

19.99

PS3333

0736

22392.75

10.95

PS2091

0736

26654.64

7.99

PS7777

0736

PS2106

0736

55978.78

2.99

BU2075

0877

7856.25

20.95

TC3218

0877

40619.68

19.99

MC2222

0877

61384.05

14.99

TC7777

0877

180397.2

11.95

TC4203

0877

66515.54

2.99

MC3021

0877

NULL

NULL

MC3026

1389

201501

22.95

PC1035

1389

81900

PC8888

1389

81859.05

19.99

BU7832

1389

81859.05

19.99

BU1032

1389

46318.2

11.95

BUllll

1389

NULL

NULL

PC9999

При использовании номеров в предложении ORDER BY нужно внимательно следить за изменениями в списке выбора. При добавлении или удалении столбцов из списка выбора результаты таких запросов могут измениться до неузнаваемости.

Сортировка по заголовку выражения. Если в списке выбора выражение определено с заголовком, по нему можно выполнять сортировку. Фактически, благодаря этой возможности можно вообще отказаться от сортировки по позиции. В следующем примере, который как и предыдущий, приводит к аналогичным результатам, выражению price * ytd sales назначен заголовок income. Именно этот заголовок и используется в предложении ORDER BY вместо номера позиции в списке выбора.

SQL:

select pub id, price * ytd sales as income, price, title id from titles

order by pub id, income desc

Сортировка no выражению. В некоторых системах допускается выполнение сортировки по самому выражению из списка выбора, без использования его номера позиции или заголовка. Проверьте, допускается ли в ващей системе следующий запрос:

SQL:

select pub id, price * ytd sales, price, title id from titles

order by pub id, price * ytd sales desc

Как сортировать нулевые значения

Не все системы одинаково упорядочивают нулевые значения. В стандарте SQL-92 определено, что при сортировке нулевых значений последние должны быть либо больше, либо меньше всех ненулевых значений. Как будет выполняться сортировка у вас - зависит от конкретной реализации. В Sybase SQL Server нули (NULL) считаются меньшими всех ненулевых значений, а в Sybase SQL Anywhere нулевые значения всегда выводятся в начале списка, независимо от порядка сортировки (по возрастанию или по убыванию).



УСТРАНЕНИЕ ПОВТОРЯЮЩИХСЯ СТРОК: ПРЕДЛОЖЕНИЯ DISTINCT И ALL

с помощью ключевых слов DISTINCT и ALL в списке выбора можно определить, что делать с повторяющимися строками результата. ALL возвращает все строки, удовлетворяющие условиям запроса (этот режим используется по умолчанию). DISTINCT возвращает только неповторяющиеся строки.

Например, при поиске в таблице titleauthors всех идентификаторов авторов с использованием ключевого слова ALL получается следующий результат:

SQL:

select all au id from titleauthors

Результат: au id

409-56-7008 486-29-1786 486-29-1786 712-45-1867 172-32-1176 213-46-8915 238-95-7766 213-46-8915 998-72-3567 899-46-2035 998-72-3567 722-51-5454 899-46-2035 807-91-6654 274-80-9391 427-17-2319 846-92-7186 756-30-7391 724-80-9391 724-80-9391 267-41-2394 672-71-3249 267-41-2394 472-27-2349 648-92-1872

Внимательно посмотрев на результаты запроса, можно обнаружить в нем повторяющиеся строки. С помощью ключевого слова DISTINCT их можно устранить.

SQL:

select distinct au id from titleauthors

Результат: au id

172-32-1176 213-46-8915



238-

-95-

-7766

267-

-41-

-2394

274-

-80-

-9391

409-

-56-

-7008

427-

-17-

-2319

472-

-27-

-2349

486-

-29-

-1786

648-

-92-

-1872

672-

-71-

-3249

712-

-45-

-1867

722-

-51-

-5454

724-

-80-

-9391

756-

-30-

-7391

807-

-91-

-6654

846-

-92-

7186

899-

-46-

-2035

998-

-72-

-3567

Таким образом из результатов предыдущего запроса будут удалены щесть повторяющихся строк.

Синтаксис предложения DISTINCT

Основная форма предложения DISTINCT имеет следующий вид:

SELECT [DISTINCT ALL] список выбора

Ключевые слова DISTINCT и ALL можно использовать в запросе только один раз и они должны стоять в начале списка выбора. В следующем примере умыщ-ленно соверщена синтаксическая ощибка:

SQL (неверно).

select state, distinct city from authors

Другими словами, нельзя выбрать все щтаты и при этом только неповторяющиеся города.

Почувствуйте разницу!

Если в списке выбора находится несколько элементов, при использовании ключевого слова DISTINCT выбираются только строки с уникальными комбинациями значений этих элементов.

Рассмотрим следующий пример. Для начала получим список всех значений столбцов pub id и types из таблицы titles.

SQL:

select pub id, type from titles order by pub id

Результат:

pub id type

0736 psychology

0736 psychology



1 ... 32 33 34 [ 35 ] 36 37 38 ... 105

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика