134
Глава 7. Создание, преобразование и работа с данными
| string |
++
| hello world |
++
1 row in set (0.00 sec)
В этом примере первые семь символов
замещаются строкой
'hello'
.
В Oracle Database нет единой функции, обладающей гибкостью
in
sert()
MySQL, но в Oracle есть функция
replace()
,
замещающая одну
подстроку другой. Вот предыдущий пример, переработанный с ис
пользованием
replace()
:
SELECT REPLACE('goodbye world', 'goodbye', 'hello')
FROM dual;
Все экземпляры строки
'goodbye'
будут
замещены строкой
'hello'
.
В результате получаем строку
'hello
world'
. Функция заместит
все
эк
земпляры искомой строки замещающей строкой – будьте вниматель
ны, чтобы не
получить больше замещений, чем задумано.
В SQL Server есть и функция
replace()
с той же функциональностью, что
и в Oracle, а
также функция
stuff()
(заполнить), функциональные воз
можности которой аналогичны функции
insert()
MySQL. Вот пример:
SELECT STUFF('hello world', 1, 5, 'goodbye cruel')
Во время выполнения этого запроса удаляются пять символов, начи
ная
с первой позиции, и на их место вставляется строка
'goodbye
cru
el'
. В результате получаем строку
'goodbye
cruel
world'
.
Кроме вставки символов в строку может понадобиться
извлечь
из стро
ки подстроку. Для этого все три
сервера включают функцию
sub
string()
(подстрока) (правда, в Oracle Database эта функция называет
ся
substr()
). Она извлекает указанное число символов, начиная с за
данной позиции. В следующем примере из
строки извлекается пять
символов, начиная с девятой позиции:
mysql>
Достарыңызбен бөлісу: