Определение значений
Числовые функции
Числовые функции значения могут принимать данные разных типов, но возвращают всегда числовое значение. В SQL имеется тринадцать таких функций.
- Положение (POSITION).
- Извлечение (EXTRACT).
- Длина (CHAR_LENGHT, CHARACTER_LENGHT, OCTET_LENGHT).
- Кардинальные числа (CARDINALITY).
- Абсолютное значение (ABS).
- Остаток от деления нацело (MOD).
- Натуральный логарифм (LN).
- Экспонента (ЕХР).
- Возведение в степень (POWER).
- Квадратный корень (SQRT).
- Округление "вниз" (FLOOR).
- Округление "вверх" (CEIL, CEILING).
- Интервальный номер (WIDTH_BUCKET).
POSITION
Функция POSITION (положение) ищет указанную целевую строку внутри указанной исходной и возвращает положение в ней начального символа целевой строки. Эта функция имеет такой синтаксис:
POSITION (целевая_строка IN исходная_строка)
В следующей таблице приведено несколько примеров использования POSITION для исходной строки 'Полностью пшеничный хлеб'.
Выражение | Результат |
---|---|
POSITION ('П' IN 'Полностью пшеничный хлеб') | 1 |
POSITION ('Пол' IN 'Полностью пшеничный хлеб') | 1 |
POSITION ('пш' IN 'Полностью пшеничный хлеб') | 11 |
POSITION ('пшо' IN 'Полностью пшеничный хлеб') | 0 |
POSITION ('' IN 'Полностью пшеничный хлеб') | 1 |
Если эта функция не находит целевую строку, то возвращает неопределенное значение. А если у целевой строки нулевая длина (как в последнем примере), то функция POSITION всегда возвращает единицу. Если любой из операндов этой функции имеет значение NULL, то в результате ее выполнения получится NULL.
EXTRACT
Функция EXTRACT (извлечь) извлекает одиночное поле из значения типа даты-времени или интервала. Например, следующее выражение возвращает 08:
EXTRACT (MONTH FROM DATE '2000-08-20').
CHARACTER_LENGTH
Функция CHARACTER_LENGTH (длина в символах) возвращает количество символов, находящихся в символьной строке. Например, следующее выражение возвращает 15:
CHARACTER_LENGTH (' Жареный опоссум')
Помни:
То, что уже говорилось в этой главе по поводу функции SUBSTRING, относится и к CHARACTER_LENGTH – эта функция не особенно полезна, если ее аргументами являются литералы, например, такие как 'Жареный опоссум'. Вместо выражения CHARACTER_LENGTH ('Жареный опоссум') можно написать число 15. Действительно, написать '15' проще. Функция SUBSTRING становится более полезной, если ее аргумент является не литеральным значением, а выражением.