Выбрать главу

Необязательный параметр начало_поиска позволяет определить позицию,

начиная с которой следует искать в х подстроку строка_поиска. Можно

также задать еще один необязательный параметр вхождение, который

указывает, адрес какого по счету вхождения подстроки строка_поиска следует

возвратить.

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’),