Строковые данные
133
| Frank Portman has been a Teller since 20030401 |
| Theresa Markham has been a Head Teller since 20010315 |
| Beth Fowler has been a Teller since 20020629 |
| Rick Tulman has been a Teller since 20021212 |
++
13 rows in set (0.12 sec)
Функция
concat()
может
обрабатывать любое выражение, возвращаю
щее строку, и даже преобразует числа и даты в строковый формат,
о чем свидетельствует столбец дат (
start_date
), используемый как ар
гумент. Хотя Oracle Database включает функцию
concat()
,
она может
принимать только строковые аргументы, поэтому в Oracle предыду
щий запрос работать не будет. В этом случае придется использовать
оператор конкатенации (
||
), а не вызов функции:
SELECT fname || ' ' || lname || ' has been a ' ||
title || ' since ' || start_date emp_narrative
FROM employee
WHERE title = 'Teller' OR title = 'Head Teller';
В
SQL Server нет функции
concat()
, поэтому используется такой же
подход, что и в предыдущем примере, только с применением операто
ра конкатенации SQL Server (
+
, а не
||
).
Функция
concat()
полезна для добавления символов в начало или конец
строки, но также позволяет ввести
или заменить символы в
середине
строки. Все три сервера БД предоставляют специальные функции для
этого, но все они разные, поэтому сначала рассмотрим функцию
MySQL, а затем перейдем к функциям двух других серверов.
MySQL включает функцию
insert()
, которая
принимает четыре аргу
мента: исходную строку, начальное положение, число символов, тре
бующих замены, и замещающую строку. В зависимости от значения
третьего аргумента функция выполняет
вставку либо замену символов
строки. Если третий аргумент равен нулю, то замещающая строка
вставляется со сдвигом всех последующих символов вправо, например:
mysql>
Достарыңызбен бөлісу: