TRIM(’0’ FROM 1OOHey Steve Button!00000’)
FROM dual;
LTRIMC HELL0GAILSEY RTRIM(’ HID0REEN0A TRIM(‘ 0 ’ FROM’ ООН
H e llo G a il Seymour! Hi Doreen Oakley! Hey Steve Button!
N V L ()
Функция NVL() используется для конвертирования пустых (n u ll) значений
в другие значения. NVL(x, значение) возвращает значение, если х содержит
n u ll, и х в остальных случаях.
В следующем примере из таблицы customers выбираются столбцы
customer_id и phone. Пустые значения в столбце phone с помощью функции
NVL() заменяются строкой Unknown Phone Number:
□ SELECT customer_id, NVL(phone, ‘Unknown Phone Number’)
FROM customers;
CUST0MER_ID NVL(PHONE,’ UNKN0WNPH’
1 800-555-1211
2 800-555-1212
Использование простых функций 101
3 800-555-1213
4 800-555-1214
5 Unknown Phone Number
N V L 2 ()
Функция NVL2(x, значение!., значение2) возвращает значение1, если х не
пусто. В противном случае возвращается значение2.
В следующем примере из таблицы customers выбираются столбцы
customer_id и phone. С помощью функции NVL2() не пустые значения столбца
phone должны быть заменены строкой Known, а пустые значения -
строкой Unknown:
□ SELECT customer_id, NVL2(phone, ‘Known’, ‘Unknown’)
FROM customers;
CUST0MER_ID NVL2(PH
1 Known
2 Known
3 Known
4 Known
5 Unknown
Для покупателей с номерами от 1 до 4 значения столбца phone конвертируются
в строку Known, так как для этих строк они не пустые (not n u ll) .
Для покупателя № 5 значение столбца phone будет преобразовано в строку
Unknown, так как для этой строки в столбце хранится пустое значение.
R E PLAC E ()
Функция REPLACE(x, строка_поиска, строка_замены) используется для поиска
в х строки, задаваемой в параметре строка_поиска, и замены ее строкой
из параметра строка_замены.
В следующем примере из таблицы products выбирается столбец name
для товара № 1 (этот столбец имеет значение Modern Science) и при помощи
функции REPLACE() строка Science заменяется строкой Physics:
□ SELECT REPLACE(name, ‘Science’, ‘Physics’)
FROM products
WHERE product_id = 1;
REPLACE(NAME,’ SCIENCE’ , ’ PHYSICS’ )
Modern P h y s ic s
Примечание Функция REPLACE() не изменяет значения строк в базе данных; изменению
подвергаются только строки результирующего набора данных.
SO U N D E X (x )
Функция S0UNDEXQ используется для получения строки, содержащей фонетическое
представление х. Это позволяет сравнивать слова, которые
записываются по-разному, но при произнесении их по-английски звучат
похоже.
102 Глава 4
В следующем примере с помощью S0UNDEX() из таблицы customers выбираются
столбцы first_name и last_name, у которых содержимое last_name
произносится как «whyte»:
□ SELECT first_name, last_name
FROM customers
WHERE SOUNDEX(last_name) = SOUNDEXCwhyte’);
FIRST_NAME LAST_NAME
Steve White
В следующем примере делается то же самое, за тем исключением, что в
функцию S0UNDEX() передается строка «Ыоо»:
□ SELECT first_name, last_name
FROM customers
WHERE SOUNDEX(last_name) = SOUNDEXC bloo’);
FIRST_NAME LAST_NAME
Doreen Blue
SU B S TR ()
Функция SUBSTR(x, начало_поиска [, длина]) используется для возврата
подстроки х, которая начинается с позиции, заданной параметром нача-
ло_поиска. Кроме того, можно задать (необязательную) длину результирующей
подстроки.
В следующем примере SUBSTR() используется для извлечения состоящей
из семи символов подстроки, начинающейся с позиции 2, из столбца name
таблицы products.
□ SELECT SUBSTR(name, 2, 7)
FROM products
WHERE product_id < 4;
SUBSTR(
odern S
hemistr
upernov
Использование выражений с функциями
В функциях можно использовать не только столбцы, но и любые допустимые
выражения, которые сводятся к строкам. В следующем примере функция
SUBSTR() используется для выбора подстроки 'little’ из строки ‘Mary has
a little lamb’ :
□ SELECT SUBSTR(‘ Mary has a l i t t l e lamb’ , 12, 6)
FROM dual;
SUBSTR
l i t t l e
Использование простых функций 103
Комбинирование функций
В операторах SQL можно использовать любые допустимые комбинации
функций. В следующем примере используется комбинация функций UPPER()
и SUBSTR(); обратите внимание, что выходные данные из SUBSTR() передаются
в UPPERQ:
□ SELECT name, UPPER(SUBSTR(name, 2, 8))
FROM products
WHERE product_id < 4;
NAME UPPER(SU
Modern Science ODERN SC
Chemistry HEMISTRY
Supernova UPERNOVA
Примечание Подобная возможность комбинирования функций распространяется не только
на символьные функции. Будут работать любые правильные комбинации функций.
Числовые функции '
Числовые функции используются для выполнения вычислений. Эти функции
принимают на входе число, источником которого может быть столбец
таблицы или любое выражение, дающее в результате число. Примером
числовой функции может служить функция SQRT(x), возвращающая