|
Программирование >> Построение запросов sql
Следует отметить, что конструкция SELECT FIRST 0 возвращает пустой результат. Аналогом конструкции FIRSTSKIP является конструкция ROWSTO, которая используется для ограничения количества строк, возвращаемых запросом, и имеет следующий формат: [ROWS k [TO r]]. Целочисленные значения k и r показывают, что строки, начиная с к-й и заканчивая r-й, будут видны в ТРЗ. Следует отметить, что конструкция ROWSTO была введена в более позднем SQL-стандарте и поэтому обладает рядом преимуществ по сравнению с конструкцией FIRSTSKIP [21]. ROWSTO может использоваться при объединении результатов нескольких запросов, в любых видах подзапроса, а также в запросах UPDATE и DELETE (будут рассмотрены далее). Например, следующий запрос выведет из таблицы Street содержимое строк с третьей по шестую: SELECT StreetCD, StreetNM FROM Street ROWS 3 TO 6;. Результат выполнения запроса представлен на рис. 3.7.
Рис. 3.7. Результат выполнения запроса на вывод строк c 3 по 6 Конструкция ROWSTO всегда может быть заменена эквивалентной конструкцией FIRST SKIP. Когда второе значение в конструкции ROWS TO отсутствует, тогда конструкции ROWS r эквивалентна конструкция FIRST r. Когда и первое, и второе значения используются, тогда ROWS к TO r эквивалентна конструкция FIRST (r - к + 1) SKIP (к - 1). Если вывести четыре строки из справочника абонентов, начиная со второй, используя следующий запрос на основе конструкции ROWS TO: SELECT * FROM Abonent ROWS 2 TO 5;, то получится результат, совпадающий с результатом, приведенным на рис. 3.6. Конструкцию SKIP n нельзя заменить конструкцией ROWS TO. Следует помнить, что хотя разрешено использование и FIRSTSKIP, и ROWSTO, при попытке совместного их использования в одной команде будет выдано сообщение о синтаксической ошибке. 3.2.2. Предложение WHERE Предложение WHERE используется для наложения условий на данные, выбираемые запросом SELECT. Предложение WHERE состоит из ключевого слова WHERE, за которым следует условие поиска, определяющее, какие именно строки требуется вывести. Предложение WHERE включает следующий набор условий для отбора строк: WHERE NOT] <условие поиска1> [[ANDOR][NOT] <условие поиска2> Условие поиска применительно к однотабличным запросам определяется следующим образом [19]: <условие поиска> { <значение> <операция сравнения> <значение1> <значение> [NOT] BETWEEN <значение1> AND <значение2> <значение> [NOT] LIKE шаблон [ESCAPE символ пропуска] <значение> [nOt] CONTAINING <значение1> <значение> [nOt] STARTING WITH <значение1> <значение> [nOT] IN ( <значение1> [ , <значение2> ) <значение> IS [NOT] NULL <значение> IS [nOt] DISTINCT FROM <значение1>, где <значение> { столбец константа <выражение> функция}. 3.2.2.1. Простое сравнение Наиболее распространенным условием поиска в языке SQL является сравнение, которое реализуется следующей конструкцией: <значение> <операция сравнения> <значение1>. При сравнении происходит вычисление и сравнение двух значений для каждой строки данных. Значения могут быть простыми, например содержать одно имя столбца или константу, и сложными - арифметическими выражениями. Например, для вывода номеров лицевых счетов абонентов и дат подачи ими непогашенных ремонтных заявок, можно испрльзовать следующий запрос: SELECT AccountCD, IncomingDate FROM Request WHERE Executed = 0;. Результат выполнения запроса представлен на рис. 3.8.
Рис. 3.8. Результат выполнения запроса с простым сравнением При сравнении двух значений могут получиться три результата: - если сравнение истинно, то результат проверки имеет значение TRUE; - если сравнение ложно, то результат проверки имеет значение FALSE; - если хотя бы одно из двух значений имеет значение NULL, то результатом проверки будет NULL. При определении условий поиска необходимо помнить об обработке значений NULL. В трехзначной логике, принятой в SQL, условие поиска может иметь значение TRUE, FALSE или NULL. А в результаты запроса попадают только те строки, для которых условие поиска имеет значение TRUE. 3.2.2.2. Проверка на принадлежность диапазону значений Другой формой условия поиска является проверка на принадлежность диапазону значений, которая реализуется с помощью ключевого слова BETWEEN. Синтаксис использования этого условия поиска следующий: <значение> [NOT] BETWEEN <значение1> AND <значение2>. При этом проверяется, находится ли значение данных между двумя определенными значениями. В условие поиска входят три выражения. Первое выражение (слева от ключевого слова BETWEEN) определяет проверяемое значение; второе (после ключевого слова BETWEEN) и третье (после ключевого слова AND) выражения определяют нижний и верхний пределы проверяемого диапазона соответственно. При этом типы данных трех выражений должны быть сравнимы. Например, если необходимо найти номера лицевых счетов абонентов, у которых значения начислений за оказанные услуги лежат в диапазоне от 60 до 250, то соответствующий запрос будет выглядеть следующим образом: SELECT AccountCD, Nachislsum FROM NachislSumma WHERE NachislSum BETWEEN 60 AND 250;. Результат выполнения запроса представлен на рис. 3.9.
Рис. 3.9. Результат выполнения запроса с проверкой диапазона значений При проверке на принадлежность диапазону нижний и верхний пределы считаются частью диапазона, поэтому в результаты запроса вошли лицевые счета, для которых значение начислений за оказанные услуги равно 250. Инвертированная проверка на принадлежность диапазону позволяет выбрать значения, которые лежат за пределами диапазона, например в следующем виде:
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |