Необязательный параметр начало_поиска позволяет определить позицию,
начиная с которой следует искать в х подстроку строка_поиска. Можно
также задать еще один необязательный параметр вхождение, который
указывает, адрес какого по счету вхождения подстроки строка_поиска следует
возвратить.
98 Глава 4
В следующем примере из таблицы products выбирается столбец паше, а
также позиция, в которой строка Science встречается в столбце п а т е для
товара № 1:
□ SELECT name, INSTR(name, ‘Science’)
FROM products
WHERE product_id = 1;
NAME INSTR(NAME, ‘ SCIENCE’ )
Modern Science 8
В следующем примере показана позиция, в которой встречается второе
вхождение буквы е, если начать поиск с самого начала названия товара,
используя INSTR():
□ SELECT name, INSTR(name, ‘e’, 1, 2)
FROM products
WHERE product_id = 1;
NAME INSTR(name, ‘ E’ , 1, 2)
Modern Science 11
Следует обратить внимание на то, что в строке Modern Science вторая
буква е является одиннадцатым по счёту символом.
В символьных функциях можно использовать даты. В следующем примере
с помощью INSTR() выводится позиция, где в столбце dob встречается
строка JAN для покупателя № 1:
□ SELECT customer_id, dob, INSTR(dob, ‘JAN’)
FROM customers
WHERE customer_id = 1;
CUSTOMER_ID DOB INSTR(D0B, ' JAN’ )
1 01-JAN-65 4
L E N G T H ()
Функция LENGTH(x) используется для получения числа символов в х. В следующем
примере с помощью LENGTH ( ) выводятся длины строк столбца
паше таблицы products:
П SELECT name, LENGTH(name)
FROM products;
NAME LENGTH(NAME)
Modern Science 14
Chemistry 9
Supernova 9
Tank War 8
Z F ile s 7
2412: The retu rn 16
Использование простых функций 99
Space Force 9 13
From Another P la n e t 19
C la s s ic a l Music 15
Pop 3 5
C re a tiv e Y e ll 13
My Front Line 13
В следующем примере с помощью LENGTH ( ) отображается количество
символов, из которых состоит цена товара; десятичная точка (.) также учитывается
при подсчете числа символов:
□ SELECT price, LENGTH(price)
FROM products
WHERE product_id < 3;
PRICE LENGTH(PRICE)
19.95 5
30 2
LOW E R () и U P P E R Q
Функция LOWER(x) используется для конвертирования входящих в х буквенных
символов в нижний регистр. Аналогично, функция UPPER(x) используется
для конвертирования входящих в х буквенных символов в верхний
регистр.
В следующем примере из таблицы customers выбираются столбцы first_
name и last_name, затем с помощью функции UPPERQ столбец first_name
конвертируется в верхний регистр, а столбец last_name с помощью функции
L0WER() конвертируется в нижний регистр:
□ SELECT UPPER(first_name), LOWER(last_name)
FROM customers;
UPPER(FIRS LOWER(LAST
JOHN brown
CYNTHIA green
STEVE white
GAIL b la c k
DOREEN blue
LPADQ и RPAD()
Функция LPAD(x, ширина [, строка-заполнитель]) используется для заполнения
х пробелами слева вплоть до достижения максимальной длины строки,
определяемой параметром ширина. Если указан параметр строка_за-
полнитель, эта строка будет повторяться в левой части х, пока не будет заполнено
все пространство строки. После этого полученная в результате
строка возвращается пользователю. Аналогичные действия осуществляются
при выполнении функции RPAD(x, ширина [, строка-заполнитель]),
но с правой стороны строки.
В следующем примере выбираются столбцы name и price из таблицы
products. С помощью функции RPAD() столбец name дополняется справа
100 Глава 4
точками (.) до максимальной длины (30 символов), а столбец price с помощью
RPAD() дополняется слева строкой *+ до достижения максимальной
длины поля (8 символов).
□ SELECT RPAD(паше, 30, ’.’), LPAD(price, 8, ’ *+’)
FROM products
WHERE product_id < 4;
RPAD(NAME,3 0 ,’ . ’ ) LPAD(PRI
Modern S c ie n c e ........................................ *+*19.95
C h em is try .................................................... *+*+*30
Supernova...................................................... *+*25.99
Примечание Этот пример показывает, что можно использовать символьные функции для
работы с числами. Более конкретно: столбец price является числовым столбцом, содержащим
цифры, но он был дополнен слева с помощью функции LPAD().
LTRIMO, R T R IM () и TRIMQ
Функция LTRIM(x [, удаляемая_строка]) используется для удаления символов
из левой части х. Можно указать необязательный параметр удаляемая_
строка, в котором содержатся символы, подлежащие удалению; если этот
параметр не указан, по умолчанию удаляются пробелы. Аналогично, функция
RTRIM(x [, удаляемая_строка]) используется для удаления символов из
правой части х. Функция TRIM() используется для удаления ненужных символов
с обеих краев х:
□ SELECT
LTRIMC Hello Gail Seymour!’,
RTRIM(‘Hi Doreen Oakley!abcabc’, ‘abc’),