Иллюстрированный самоучитель по SQL для начинающих

Сложные выражения со значением

В этой главе…

  • Использование условных выражений case
  • Преобразование элемента данных из одного типа данных в другой
  • Экономия времени ввода данных с помощью выражений со значением типа запись

В главе 2 SQL был назван подъязыком данных. Фактически единственная задача этого языка состоит в том, чтобы работать с информацией из базы данных. В SQL нет многих возможностей обычного процедурного языка. В результате, если разработчики используют SQL, то для организации выполнения программ им приходится думать о совмещении кода базового языка с кодом SQL. Это усложняет разработку программы и отрицательно сказывается на ее производительности.

Ухудшение производительности, которое происходит из-за ограниченных возможностей SQL, привело к тому, что новые версии его международных спецификаций включают новые возможности. Одной из таких возможностей является выражение CASE. С его помощью наконец-то можно построить долгожданную условную структуру. Вторым из нововведений является выражение CAST. Оно помогает преобразовывать табличную информацию из одного типа данных в другой. И наконец, третье нововведение – выражение со значением типа запись – дает возможность работать со списком значений там, где без него можно было работать только с одним значением. Например, если список значений является списком столбцов из таблицы, то теперь можно выполнять какую-либо операцию со всеми этими столбцами, используя для этого очень простой синтаксис.

Условные выражения GASC

В каждом полноценном компьютерном языке имеется какой-либо условный оператор или условная команда. На самом же деле у большинства языков таких операторов или команд имеется несколько. Вероятно, самой распространенной среди них является структура IF…THEN…ELSE…ENDIF. Если вычисленным значением условия, следующего за ключевым словом IF (если), является True (истина), то выполняется блок команд, который следует за ключевым словом THEN (тогда). А если вычисленное значение условия не равно True, то выполняется блок команд, следующий за ключевым словом ELSE (иначе). О завершении структуры свидетельствует ключевое слово ENDIF (конец IF). Эта структура является прекрасным средством представления в виде кода любой операции, которая может выполняться одним из двух способов. С другой стороны, структура IF…THEN…ELSE…ENDIF меньше подходит для операций, имеющих больше двух вариантов выполнения.

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

В SQL:2003 CASE является выражением, а не оператором. Поэтому CASE в этом языке является только частью оператора, а не оператором как таковым. В SQL выражение CASE можно поместить почти в любом месте, где только может находиться какое-либо значение. Во время выполнения программы для этого выражения вычисляется значение. А для операторов CASE из других языков никакое значение не вычисляется; вместо этого они управляют выполнением программы.

Выражение CASE можно использовать двумя способами.

  • Использовать вместе с условиями поиска. Выражение CASE отыскивает в таблице такие строки, для которых эти условия выполняются, т.е. являются истинными. Если для какой-либо строки условия являются истинными, то оператор, в состав которого входит выражение CASE, работает с данной строкой.
  • Использовать, чтобы сравнить значение, указанное в этом выражении, с содержимым табличного поля. Действия, выполняемые оператором, содержащим выражение CASE, зависят от того, какому из нескольких указанных значений соответствует содержимое поля в очередной табличной строке.

Эти понятия станут более ясными после изучения разделов "Использование выражения CASE вместе с условиями поиска" и "Использование выражения CASE вместе со значениями". В первом из этих разделов приводятся два примера использования выражения CASE вместе с условиями поиска. В одном из этих примеров проводится поиск по всей таблице, и на основе имеющихся условий делаются разные изменения табличных значений. Во втором разделе, "Использование выражения CASE вместе со значениями", есть два примера использования этого выражения вместе со значениями.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.