|
Программирование >> Sql: полное руководство
Если с помощью операторов 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
--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
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |