Программирование >>  Sql: полное руководство 

1 ... 33 34 35 [ 36 ] 37 38 39 ... 264


Таблица 6J. TaSnniia истинности оператора AfCf

TRUE FALSE NULL

TRUE

FALSE

NOLL

true false null

false false false

null false null

Таблица

6.2. Таблица истинности оператора OR

TRUE

FALSE

NULL

TRUE

true

true

true

FALSE

true

false

null

NULL

true

null

null

Таблица 6 3 Таблица истинности оператора NO

TRUE FALSE

NULL

false true

null

Если с помощью операторов and, or и not объединяется более двух условий отбора, то в соответствии со стандартом ANSI/ISO оператор not имеет наивысший приоритет, за ним следует and и только потом or. Однако, чтобы гарантировать переносимость, всегда следует использовать круглые скобки; это позволит устранить все возможные неоднозначности.

В стандарте SQL2 появилось еще одно логическое условие отбора- проверка is На рис 6 13 изображена синтаксическая диаграмма этой проверки. Оператор is проверяет значение результата логического выражения.

сравнение

L- логическое выражение-I

IS

TRUE FALSE-

- unknown-

Рис 6 13 Синтаксическая диаграмма оператора 13

Например, проверку

((SALES - QUOTA) > 10000.00) IS UNKNOWN

можно использовать, чтобы отыскать строки, в которых нельзя выполнить сравнение из-за того, что либо столбец sales, либо столбец quota имеет значение null Подобным образом проверка

((SALES - QUOTA) > 10000.00) IS FALSE

позволяет выбрать строки, в которых значение столбца sales если и превышает начение столбца quota, то незначительно Как показывает данный пример, на самом



деле проверка is не привносит в SQL ничего нового, поскольку ее можно легко переписать в виде:

NOT {(SALES - QUOTA) > 10000.00)

Для обеспечения максимальной переносимости следует избегать подобных проверок и записывать выражения только с помощью операторов and, or и not Однако избежать проверки is unknown удается не всегда.

Сортировка результатов запроса (предложение ORDER BY)

Строки результатов запроса, как и строки таблицы базы данных, не имеют определенного порядка. Но, включив в инструкцию select предложение order by, можно отсортировать результаты запроса Это предложение, синтаксическая диаграмма которого изображена на рис. 6 14, содержит список имен или порядковых номеров столбцов, разделенных запятьгми Например, результаты следующего запроса отсортированы по двум столбцам, region и city:

Показать 4)актические объемы продаж для каждого офиса, отсортированные в алфавитном порядке по названиям регионов и в каждом регионе - по названиям городов

SELECT CITY, REGION, SALES FROM OFFICES ORDER BY REGION, CITY

CITY

REGION

SALES

Atlanta

Eastern

$367,911

Chicago

Eastern

$735,042

New York

Eastern

$692,637

Denver

Western

$186,042

Los Angeles

Western

$835,915

--ORDER BY -Г

-имя столбца

порядковый номер столбца -

DESC-

Рис 6 14. Синтаксическая диаграмма предпо}1ейия ORDER ST

Первый столбец (region) является главным ключом сортировки; столбцы, следующие за ним (в данном примере city), являются все более второстепенными ключами. Можно сортировать результаты запроса по любому элементу списка возвращаемых столбцов.



в предложении order by можно выбрать возрастающий или убывающий порядок сортировки. По умолчанию данные сортируются в порядке возрастания. Чтобы сортировать их по убыванию, следует включить в предложение сортировки ключевое слово desc, как это сделано в следующем примере:

Вывести список офисов, отсортированный по фактическим объемам продаж в порядке убывания.

SELECT CITY, REGION, SALES FROM OFFICES ORDER BY SALES DESC

CITY REGION SALES

Los Angeles Western $835,915.00

Chicago Eastern $735,042.00

New York Eastern $692,637.00

Atlanta Eastern $367,911.00

Denver Western $186,042.00

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

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

Вывести список всех офисов, отсортированный по разности между фактическим и плановым объемами продаж в порядке убывания.

SELECT CITY, REGION, (SALES-TARGET) FROM OFFICES ORDER BY 3 DESC

CITY REGION (SALES-TARGET)

New York Eastern $117,637.00

Los Angeles Western $110,915.00

Atlanta Eastern $17,911.00

Chicago Eastern -$64,958.00

Denver Western -$113,958.00

Полученные результаты запроса отсортированы по третьему столбцу, значения которого представляют собой разности между значениями столбцов sales и target для каждого офиса. Одновременно используя имена и номера столбцов, а также возрастающий и убывающий порядки сортировки, можно сортировать результаты запроса по достаточно сложному алгоритму, как это сделано в следующем примере:

Вывести список офисов, отсортированный в алфавитном порядке по названиям регионов, а в каждом регионе - по разности между фактическим и плановым объемами продаж в порядке убывания.

SELECT CITY, REGION, (SALES-TARGET) FROM OFFICES ORDER BY REGION ASC, 3 DESC



1 ... 33 34 35 [ 36 ] 37 38 39 ... 264

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