Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Функция REPLACE

Функция REPLACEФункция REPLACE, существующая во всех трех рассматриваемых СУБД, возвращает символьную строку, в которой все вхождения выражения2 заменены выражениемЗ. Приведем пример. Этот запрос вернул результат bb12bbbb12bbbb12, поскольку все вхождения символов aa заменялись символами bb12. Для запуска этого запроса в Microsoft SQL Server 2008 просто удалите предложение FROM. Для запуска в IBM DB2 9.5 замените таблицу dual на sysibm. sysdummy1. Для тиражирования одного или нескольких символов используют функции REPLICATE или REPEAT (они применимы в СУБД DB2 9.5 и Microsoft SQL Server). В Oracle аналогичная функциональность достигается с помощью комбинации функций LPAD и RPAD. В следующем примере (синтаксис DB2 9.5) функция REPEAT возвращает строку, в которой слово repeat повторяется три раза (причем без пробела между отдельными словами). Предел длины результирующей строки определяется типом данных аргумента. Максимальное число повторений не должно превышать предела целочисленного значения в системе (в 32-разрядных компьютерах это 2147483647). Аналогичный результат в Microsoft SQL Server можно получить с помощью следующего запроса. А вот пример использования функции Oracle RPAD для тиражирования строки. В данном примере второй аргумент определяет общую длину результирующей строки, функция LENGTH применяется для измерения длины исходной строки, а множитель 3 указывает на количество повторений. Это достаточно удобная версия функции REPLACE. Для поиска и замены символов в строке в ней используются шаблоны. В следующем примере все цифры заменяются нулями, а все буквы, за исключением K, — звездочками; сама же буква K заменяется на Х. Данную функцию полезно использовать в целях безопасности. К примеру, если в базе данных содержатся конфиденциальные данные (скажем, номера кредитных карточек), в отчетах их выводить совершенно не обязательно. В следующем примере номер кредитной карточки заменяется звездочками.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *