Published on

December 4, 2025

Понимание функции SQL REPLACE в Microsoft SQL Server

Разработчики и администраторы SQL Server часто должны выполнять манипуляции со строками в запросах или скриптах. Одна мощная функция, которая может помочь в этих задачах, это функция SQL REPLACE в Microsoft SQL Server. Эта функция позволяет заменить все вхождения указанного значения строки на другое значение строки, что делает ее ценным инструментом для манипуляции данными.

Синтаксис

Синтаксис функции SQL REPLACE выглядит следующим образом:

REPLACE(выражение_строки, шаблон_строки, замена_строки)

Параметр выражение_строки представляет собой строковые данные, которые вы хотите обработать с помощью функции REPLACE(). Параметр шаблон_строки – это подстрока символов, которую нужно найти, а параметр замена_строки – это подстрока символов, которой нужно заменить найденное.

Пример: Простой синтаксис REPLACE()

Давайте начнем с простого примера, чтобы проиллюстрировать использование функции REPLACE():

DECLARE @simpleString varchar(MAX) = 'Техас - самый великий штат в США.'
SELECT REPLACE(@simpleString, '.', '!!!!')

Вышеприведенный запрос заменит все вхождения символа точки “.” на “!!!!” в строке. Результат будет:

Техас - самый великий штат в США!!!!

Пример: Обновление значений в таблице

Функцию REPLACE() также можно использовать для обновления значений в таблице. Допустим, вам нужно изменить все базы данных SQL, которые начинаются с “DBA”, чтобы они начинались с “SQLAdmin” из-за уязвимости безопасности. Вы можете сделать это с помощью функции REPLACE() в операторе SELECT:

SELECT 
   name AS [Исходное значение], 
   REPLACE(name, 'DBA', 'SQLAdmin') AS [Новое значение] 
FROM sys.databases 
WHERE name LIKE 'DBA%'

Вышеприведенный запрос найдет все базы данных в таблице sys.databases, которые начинаются с “DBA”, и покажет новое значение после применения функции REPLACE. Это позволяет вам просмотреть изменения перед принятием дальнейших мер по переименованию баз данных.

Пример: Замена данных в таблице

Функцию REPLACE() также можно использовать для замены конфиденциальных данных в таблице. Предположим, ваша команда HR сообщает вам, что код области для всех телефонных номеров сотрудников меняется с “987” на “123”. Вы можете использовать функцию REPLACE() для выполнения этой задачи:

CREATE TABLE #PhoneNumbers (PhoneNumber VARCHAR(14))
INSERT INTO #PhoneNumbers VALUES ('(987) 111-1111')
INSERT INTO #PhoneNumbers VALUES ('(987) 222-2222')
INSERT INTO #PhoneNumbers VALUES ('(987) 333-3333')
INSERT INTO #PhoneNumbers VALUES ('(987) 444-4444')
INSERT INTO #PhoneNumbers VALUES ('(987) 555-5555')

SELECT PhoneNumber AS [Исходный номер телефона], REPLACE(PhoneNumber, '987', '123') AS [Новый номер телефона]
FROM #PhoneNumbers

DROP TABLE #PhoneNumbers

Вышеприведенный запрос заменит все вхождения “987” на “123” в столбце PhoneNumber таблицы #PhoneNumbers. Это позволяет вам замаскировать исходные данные, сохраняя при этом формат.

Заключение

Функция SQL REPLACE в Microsoft SQL Server является мощным инструментом для манипуляции строками. Независимо от того, нужно ли вам обновить значения в таблице, замаскировать конфиденциальные данные или выполнить другие манипуляции со строками, функция REPLACE() может упростить ваши задачи и повысить эффективность. Понимая синтаксис и примеры, предоставленные в этой статье, вы можете использовать функцию SQL REPLACE в полной мере в своих проектах SQL Server.

Статья последний раз обновлена: 2022-01-24

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.