Программирование >>  Исключение дубликатов строк 

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


Теперь рассмотрим, как рименять функцию CAST в выражении со сцеплением.

Для объединения строкового литерала или значения символьного столбца с литералом типа дата или значением столбца даты воспользуйтесь функцией CAST для преобразования значения даты в символьную строку. Рассмотрим пример использования CAST для преобразования значения столбца даты с именем DateEntered (Введенная дата):

Выражение

EntStageName

заключил контракт с агентством

Результат

CASTCDateEntered as CHARACTER)

Modern Dance заключил контракт с агентством 1999-05-16

Функция CAST также может использоваться для объединения цифрового литерала или значения цифрового столбца с символьным типом данных. В следующем примере CAST используется для преобразования значения цифрового столбца с именем RetailPrice (Розничная цена):

Выражение

Результат

ProductName 11 продается по II CASKRetailPrice AS CHARACTER)

Trek 9000 Mountain Bike продается no $1200.00

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

Выражение

Заказ номер был размещен

CastCOrderNumber AS CHARACTER) CASTCOrderDate AS CHARACTER)

Результат

был размещен CASTCOrderDate AS

Заказ номер 1 был размещен 1999-07-04

Внимание! Стандарт SQL определяет многообразие функций, которые можно использовать для извлечения информации из столбца или для вычисления значения по некоторому диапазону строк. Часть этих функций подробно рассматривается в главе 12.

Теперь рассмотрим различные типы выражений, которые можно создавать, используя цифровые данные.

Мотвмотичвскив выражения

Стандарт SQL определяет сложение, вычитание, умножение и деление как операции, которые можно выполнять над цифровыми данными. Понятно, что это достаточно ограниченный набор операций. К счастью, большинство СУРБД предлагает намного более широкое разнообразие операций, включая модуль, квадратный корень.



экспоненту и абсолютный показатель степени. Они также обеспечивают широкий набор научных, тригонометрических, статистических, а также математических функций. Для наших целей мы ограничимся только операциями, определенными стандартом SQL.

Порядок, в котором выполняются эти четыре математические операции (называемый порядком предшествования), важен при составлении математических выражений. Стандарт SQL присваивает равный приоритет для умножения и деления и определяет, что они должны выполняться прежде любого сложения или вычитания. Однако в большинстве СУБД математические выражения по умолчанию вычисляются слева направо. Это может привести к некоторым интересным результатам в зависимости от того, как было построено выражение. Поэтому мы настоятельно рекомендуем активно изучить использование круглых скобок в сложных математических выражениях, чтобы гарантировать их надлежаш,ее вычисление.

Если вы помните, как записывались математические выражения в школе, то вам уже известно, как записать их в SQL. По супдеству, для создания выражения используется цифровое значение, возможно, со знаком, математический оператор и другое цифровое значение, не обязательно со знаком. На рис. 5.7 представлена диаграмма этого процесса.

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

25 + 35 -12 * 22

Retail Price * QuantityOnHand Total Score / GamesBowled Retail Price - 2.50 Total Score / 12

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

Выражение

Результат

(11 - 4) + (12 * 3) 43

Магемагическое выражение

Цифровой литерал -~т-

Ссылка на столбец

Цифровой литерал Ссылка на столбец

Рис. 5.7. Синтаксическая диаграмма для математического выражения



Уделяйте серьезное внимание порядку скобок в выражениях, потому что он влияет на возвращаемое значение. Хотя оба выражения содержат те же самые числа и операторы, при разном порядке расположения скобок возвращаются совершенно разные значения:

Выражение (23 * 11) + 12

Результат 265 /

Выражение 23 * (11 + 12)

Результат 529

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

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

Выражение (12 * (3 + 4)) - (24 / (10 + (6 - 4)))

Результат 82

Выполнение операций в выражении в действительности не настолько сложно, как кажется. Приведем пример того, как СУБД вычисляет выражение:

3. 4. 5.

3 + 4) = 7 6-4) = 2

10 + 2) = 12 10 плюс результат второй операции

12 * 7) = 84 12 умножить на результат первой операции

24/12) = 2 24 разделить на результат третьей операции

6. 84 - 2 = 82 84 минус результат пятой операции

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

При работе с математическими выражениями убедитесь, что значения, используемые в выражении, совместимы. Это особенно справедливо для выражений, содержащих ссылки на столбцы. С этой целью можно использовать функцию CAST, как это делалось в выражениях со сцеплением. Например, имеется столбец с именем TotalLength (Общая длина) и типом данных INTEGER, в котором хранятся целые



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

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