Ms sql replace: REPLACE (Transact-SQL) — SQL Server

Функция замены

SQL Server + примеры

В этом руководстве по SQL Server мы узнаем о замене SQL Server, различных примерах замены SQL Server, и рассмотрим тему ниже.

  • SQL Server Заменить функцию
  • SQL Server Заменить несколько символов
  • SQL Server Заменить специальный символ
  • SQL Server Заменить текст в столбце
  • SQL Server Заменить символ новой строки
  • SQL Server Заменить пустую строку значением
  • SQL Server Заменить нуль на 0
  • SQL Server Заменить одинарную кавычку
  • SQL Server Заменить пробел на null
  • SQL Server Заменить двойные кавычки на одинарные
  • SQL Server Заменить символы с диакритическими знаками
  • SQL Server Заменить строку после символа
  • SQL Server Заменить строку между двумя символами
  • SQL Server Заменить все вхождения строки

Здесь я использую SQL Server 2019 Express со студией управления сервером Sql.

Содержание

Функция замены SQL Server

В SQL Server замена — это функция, которая используется для замены подстроки в заданной строке другой подстрокой. И он возвращает новую строку, в которой новая подстрока заменяет все вхождения подстроки.

Функция Replace() в SQL Server принимает 3 аргумента и имеет следующий синтаксис.

 REPLACE(  string_expression  ,  string_pattern  ,  string_replacement  ) 
  • string_expression в приведенном выше синтаксисе представляет собой символьное или двоичное выражение типа данных, которое необходимо найти.
  • Шаблон string_pattern используется для представления подстроки, которую пользователь хочет заменить из string_expression новой подстрокой. string_pattern может быть выражением двоичного или символьного типа данных, и если string_pattern определено как пустая строка («), string_expression  будет возвращен без изменений.
  • string_replacement в приведенном выше синтаксисе используется для представления новой подстроки, которую пользователь хочет заменить вместо string_pattern(старая подстрока). Это также выражение символьного или двоичного типа данных.
  • Функция Replace() вернет NULL, если любой из приведенных выше аргументов равен NULL.

Пример функции замены SQL Server-1

 SELECT
      ЗАМЕНИТЬ(
        'Я хочу бургер.',
        'бургер',
        'кофе'
    )  Результат; 

В приведенном выше примере мы определили string_expression как « Я хочу гамбургер. ‘в функции Replace(). После этого мы определили string_pattern как « burger », а затем мы определили string_replacement как « coffee ».

Таким образом, функция Replace() сначала попытается найти подстроку « burger » в строке « I want a burger ». После этого он заменит « burger ” с подстрокой “ coffee ”. И в конце он вернет новую строку.

SQL Server Replace Example-1

Read SQL Operand data type real недействителен для оператора по модулю

SQL Server Replace Function Example-2

 SELECT
    ЗАМЕНЯТЬ(
        'Джеймс из Канады.',
        'Канада',
        'Соединенные Штаты Америки'
    ) Результат; 

В приведенном выше примере мы определили string_expression как ‘ Джеймс из Канады. ‘в функции Replace(). После этого мы определили string_pattern как « Canada », а затем мы определили string_replacement как « United States of America ».

Таким образом, функция Replace() сначала попытается найти подстроку « Canada » в строке « Джеймс из Канады». ” строка. После этого он заменит подстроку « Canada » на « Соединенные Штаты Америки ”подстрока. И в конце он вернет новую строку.

SQL Server Replace Example-2

Read: SQL Server Convert String to Date + Examples

SQL Server Заменить текст в столбце

Мы также можем использовать функцию Replace() для обновления или редактирования значений столбца в SQL Server. Для этого мы можем использовать следующий синтаксис.

 ОБНОВЛЕНИЕ
    имя_таблицы
УСТАНОВЛЕН
    имя_столбца =  ЗАМЕНИТЬ (имя_столбца, 'старая_строка','новая_строка') 
КУДА
    условие; 

Давайте разберемся с этим на примере. Теперь для демонстрации рассмотрим следующий пример таблицы в SQL Server

. Пример таблицы в SQL Server

. Приведенная выше таблица содержит столбец «Контакт», и каждое значение контакта состоит из числа в определенном формате (например, xxx-xxx-xxxx). Итак, для этого примера мы заменим дефис «-» в контактном номере пробелом «». И для этого мы используем следующий запрос.

 ОБНОВЛЕНИЕ
    Образец
УСТАНОВЛЕН
    Контакт =  ЗАМЕНИТЬ(Контакт,'-','') 
КУДА
    Контакт НЕ NULL; 

В приведенном выше запросе мы обновляем таблицу Sample и изменяем значения столбца Contact с помощью функции Replace(). А в функции Replace() мы использовали столбец Contact в качестве входного выражения и заменяем дефис (-) пробелом (» «). После обновления наш будет выглядеть так.

Обновленная таблица примеров

Чтение: SQL Server Преобразование даты и времени в строку

SQL Server Заменить нуль на 0

В SQL Server есть 2 способа заменить значение NULL на « 0 ». И мы собираемся обсудить оба способа с помощью примера ниже.

Использование функции COALESCE()

Coalesce в SQL Server — это функция, которая принимает несколько выражений в качестве аргумента, оценивает каждый аргумент по порядку и возвращает первое ненулевое выражение в нем. Он имеет следующий синтаксис.

 ОБЪЕДИНЕНИЕ(  выражение  [ ,...n ] ) 

Coalesce() может принимать несколько выражений любого типа данных.

Теперь давайте разберемся с его реализацией на небольшом примере. Для этого рассмотрим следующий столбец Score, который также содержит значения NULL.

Sample Table

Теперь мы попробуем заменить NULL на « 0 » в столбце Score, используя следующий запрос.

 ОБНОВЛЕНИЕ
    Образец
УСТАНОВЛЕН
    [Score] =  COALESCE(Score, 0)  

В приведенном выше запросе мы используем предложение UPDATE для редактирования столбца Score. И мы используем функцию Coalesce() для установки значений для столбца Score. Функция Coalesce() оценит столбец Score и вернет 0 вместо NULL, поскольку 0 является первым ненулевым значением в функции Coalesce.

Использование функции ISNULL()

в SQL Server, ISNULL — это функция, которая заменяет значение NULL указанным выражением. И он имеет следующий синтаксис.

 ISNULL(  check_expression  ,  replace_value  ) 
  • Функция ISNULL() имеет 2 параметра, первый — check_expression , который представляет выражение, которое необходимо вычислить для значения NULL. Функция ISNULL() проверит check_expression на наличие значений NULL.
  • Вторым параметром является replace_value , представляющее выражение, которое необходимо заменить на NULL.
  • если check_expression не равно null, функция вернет только check_expression.

Снова для демонстрации мы будем использовать тот же пример столбца Score. Но на этот раз мы собираемся использовать ISNULL() вместо Coalesce().

 ОБНОВЛЕНИЕ
    Образец
УСТАНОВЛЕН
    [Оценка] =  ISNULL (Оценка, 0)  

В приведенном выше запросе мы используем функцию ISNULL() для замены всех значений NULL на 0 в именованном столбце Score.

Читать: Как создавать функции в SQL Server Management Studio

SQL Server Замена нескольких символов

При работе с необработанными данными в SQL Server может потребоваться форматирование данных и замена нескольких символов в одной строке. Теперь давайте рассмотрим пример, чтобы понять эту реализацию.

Для демонстрации рассмотрите следующий столбец «Контакты». И контактные номера имеют определенный формат [«(xxx) xxxxxxx»], но для нашей работы нам нужен контакт в (xxx xxxxxxx).

Образец таблицы контактов

Теперь мы попробуем заменить « (» и «) » символов пустой строкой, используя следующий запрос.

 ВЫБЕРИТЕ контакт КАК [Исходный контактный номер],
         REPLACE(REPLACE(Контакт, '(', ''), ')', '')  AS [Форматированный номер контакта]
FROM Sample 

Мы можем легко заменить несколько символов в SQL Server, используя несколько функций Replace() друг в друге. В этом примере мы хотим заменить 2 символа [ ‘ ( ‘ и ‘ ) ‘], поэтому мы используем 2 функции Replace(). Функция Replace() из последней будет выполняться первой, а ее результат будет использоваться в качестве входных данных для другой функции Replace().

После успешного выполнения возвращается следующий результат.

Замена нескольких символов в SQL Server

Чтение: отбрасываемая таблица SQL Server, если она существует

SQL Server Замена специальных символов/символов ASCII

Одним из наиболее важных процессов в процессе ETL является очистка данных, которая требует удаления завершающих и ведущих пространства. Однако устранение специальных символов ASCII, таких как символы новой строки и горизонтальные символы табуляции, может быть затруднено.

Американский стандартный код для обмена информацией ( ASCII) — это стандартизированный числовой код для кодирования символьных данных в компьютере, который широко используется. Кроме того, SQL Server использует ANSI, который представляет собой обновленную версию ASCII. Кроме того, SQL Server включает встроенную функцию CHAR для преобразования числового значения ASCII обратно в исходный символ или символ.

Следовательно, мы можем легко получить специальный символ, используя числовой код ASCII в функции CHAR(), как показано в примере.

Использование функции Char() для специальных символов

Вот список некоторых специальных символов с кодом ASCII.

Код Символ Имя
33 ! Exclamation Mark
34 Double Quote
35 # Number Sign
36 $ Dollar
37 % Percent
38 & Ampersand
39 Single Quote
40 ( Parenthesis
41 ) Parenthesis
43 + Plus Sign
92 \ Backslash
149 Bullet
153 Trademark Symbol
174 ® Registered trademark
183 · Interpunct

Список специальных символов

Итак, теперь давайте разберемся, как можно заменить любое специальное ключевое слово с помощью функции Replace() в SQL Server. И, например, рассмотрим следующий образец таблицы.

Образец таблицы Для примера

Приведенная выше таблица состоит из столбца электронной почты, содержащего неформатированный адрес электронной почты. И каждое значение электронной почты содержит дополнительный восклицательный знак (!) и знак доллара ($).

Теперь мы удалим восклицательный знак (!) и знак доллара ($) с помощью функции Replace().

 ВЫБЕРИТЕ адрес электронной почты,  ЗАМЕНИТЬ (ЗАМЕНИТЬ (адрес электронной почты, СИМВОЛ (33), ''), СИМВОЛ (36), '') 
AS [Отформатированное электронное письмо]
ОТ Образца; 

В приведенном выше запросе мы использовали 2 функции Replace(), чтобы сначала удалить восклицательный знак (!). А затем мы используем его результат в качестве входных данных для другой функции Replace(), которая используется для удаления знака доллара ($) из столбца электронной почты.

После выполнения запрос вернет следующий результат.

Окончательный вывод

Чтение: SQL Server Преобразование даты и времени в дату

SQL Server Заменить символ новой строки

Мы можем легко заменить символ новой строки или разрыва строки любым другим символом с помощью функции Replace(). А в функции Replace() для указания символа новой строки мы можем использовать код ASCII для символа новой строки в функции Char().

Теперь, например, рассмотрим следующую строку, в которой мы собираемся заменить символ новой строки запятой (,).

 ОБЪЯВИТЬ @strInput VARCHAR(100)
SET @strInput = 'Январь
февраль
Маршировать
май
Июнь
Июль
Август
Сентябрь
Октябрь
ноябрь
Декабрь'
Выберите @strInput в качестве входных данных 

Sample String

Теперь, чтобы заменить символ новой строки запятой (,), мы собираемся выполнить следующий запрос.

 SELECT  REPLACE(@strInput,CHAR(13)+CHAR(10),', ')  AS 'Новая строка' 

В приведенном выше запросе мы используем функцию Replace() в операторе SELECT. И мы также дали нашу строковую переменную в качестве входного выражения в функции Replace(). После этого мы используем 2 функции Char(), Char(13) для возврата каретки и Char(10) для перехода на новую строку и заменяем их запятой (,).

Чтение: Строковые или двоичные данные будут усечены в SQL Server

SQL Server Заменить пустую строку значением

Теперь заменить пустую строку значением в SQL Server немного сложно, поскольку мы не можем использовать Replace() или Coalesce () функция непосредственно для него. Для этой реализации мы должны использовать функцию NULLIF() с Coalesce().

Функция NULLIF() принимает два выражения и возвращает NULL, если оба выражения совпадают. Итак, мы собираемся использовать функцию NULLIF(), чтобы найти пустую строку в выражении, а затем, используя Coalesce(), мы собираемся заменить пустую строку значением.

Теперь для демонстрации рассмотрим следующий образец таблицы.

Образец таблицы

Столбец «Пол» в приведенной выше таблице содержит пустую строку вместо «Мужской». Итак, мы собираемся использовать следующий запрос, чтобы заменить пустую строку строковым значением «Мужской».

 Образец обновления
Установлен
пол =  COALESCE(NULLIF(пол,''), 'Мужской') 
ГДЕ пол=''
 

В приведенном выше запросе мы используем функцию NULLIF() в функции Coalesce() , который вернет NULL для каждой пустой строки, найденной в столбце пола. А с помощью Coalesce() мы заменяем все пустые строки строкой «мужской».

После успешного выполнения все пустые строки в колонке пола будут заменены на Мужской.

Обновленная таблица

Чтение: Функция преобразования SQL Server

SQL Server Заменить одинарную кавычку

В SQL Server, чтобы получить выражение одинарной кавычки (‘), мы можем использовать код символа ASCII для одинарной кавычки в Функция Char() . И функция Char() вернет одинарную кавычку как выражение.

Использование кода ASCII для одиночной кавычки

Из приведенного выше примера мы получаем, что код ASCII для символа одинарной кавычки равен 39 . Таким образом, мы можем использовать функцию Char() внутри функции Replace(), чтобы заменить любое другое значение одинарной кавычкой.

SELECT first_name,  REPLACE(first_name,CHAR(39),'')  FROM Образец
 

В приведенном выше запросе мы дали столбец first_name как выражение для поиска в функции Replace() . После этого мы определили CHAR(39) как символ, который нужно заменить пустой строкой. Поэтому после выполнения он заменит все одинарные кавычки пустой строкой столбца first_name.

Результат запроса

Чтение SQL Server ВСТАВЬТЕ В SELECT

SQL Server Замените пустое значение на null

В SQL Server пустое или пустое выражение представляется двумя одинарными кавычками («»). Теперь, чтобы заменить пустое значение на NULL, мы можем использовать Функция Replace() , которая используется для замены символьного выражения в заданном строковом выражении.

Для демонстрации рассмотрим следующий пример таблицы, в которой значения черного цвета указаны в столбце « Название компании ».

Образец таблицы

Теперь мы собираемся использовать следующий запрос, чтобы заменить черные значения нулевыми в столбце «Название компании».

 Образец ОБНОВЛЕНИЯ
УСТАНОВЛЕН
[Название компании] =  REPLACE([Название компании],'',NULL) 
ГДЕ [Название компании]='' 

В приведенном выше запросе мы используем функцию Replace() для замены пустых или пустых значений («») на NULL в столбце «Название компании». И после выполнения этого запроса наша таблица обновится.

Обновленная таблица

Чтение: Порт SQL Server — Подробное руководство

SQL Server Заменить двойные кавычки одинарными

В SQL Server мы можем заменить двойные кавычки одинарной с помощью функции Replace(). И чтобы определить двойные и одинарные кавычки в Replace(), мы можем использовать функцию Char().

 ОБЪЯВИТЬ @strInput VARCHAR(100)
НАБОР @strInput = '"SQLServerGuides"'
ВЫБЕРИТЕ @strInput AS «Старая строка»,
         REPLACE(@strInput,CHAR(34),CHAR(39))  AS 'New String' 
  • Таким образом, в приведенном выше коде сначала мы определили переменную varchar как «SQLServerGuides» , и мы используем двойные кавычки внутри него.
  • После этого мы использовали функцию Replace() в операторе SELECT для замены кавычек.
  • Для двойных кавычек мы используем CHAR(34) , а для одинарных кавычек мы используем функцию CHAR(39) .

После выполнения он вернет следующий результат.

Окончательный результат

SQL Server Заменить символы с диакритическими знаками

Теперь, как разработчик базы данных, могут быть сценарии, в которых у вас есть символы с диакритическими знаками в ваших данных, и вы хотите заменить их обычными символами. Для этого мы можем использовать функцию Replace() с командой Collate в SQL Server.

Давайте разберемся с этим на примере и рассмотрим следующий образец таблицы.

Sample Table

В приведенной выше таблице столбец Name содержит символы â , и чтобы заменить их обычными символами, мы воспользуемся следующим запросом.

 ВЫБЕРИТЕ Имя,  ЗАМЕНИТЬ (Имя СОРТИРОВАТЬ Latin1_General_CS_AI, 'a', 'a') 
AS «Обновленное имя»
FROM Sample 

В приведенном выше запросе мы используем функцию Replace() в операторе SELECT. И в функции Replace () мы определили столбец Name как наше выражение для поиска. И с именем мы используем COLLATE команда, определяющая набор коллекций. Теперь, используя имя коллекции, символы ÷ можно заменить обычными и символами.

Запрос вернет следующий результат.

Замена подстрочного символа обычным символом

Чтение: Функция подстроки SQL Server [9 примеров]

SQL Server Замена строки после символа

В SQL Server мы не можем напрямую заменить подстроку после определенного символа с помощью функции Replace(). Базовый подход для этой реализации может быть следующим:

  • Во-первых, мы должны использовать функцию CHARINDEX() , чтобы найти значение индекса определенного символа, после чего мы хотим заменить строку.
  • Далее мы должны использовать функции Substring() и Len() для извлечения подстроки после определенного символа.
  • В последнем случае мы должны использовать извлеченную строку в функции Replace() , чтобы заменить ее новой подстрокой.

Теперь давайте соберем все точки вместе и реализуем это с помощью следующего запроса.

 ВЫБЕРИТЕ [ИМЯ],
          ЗАМЕНИТЬ([ИМЯ],
ПОДСТРОКА([ИМЯ],CHARINDEX(',',[ИМЯ])+1,
ДЛСТР([Имя])),'') 
АС [Имя]
FROM Sample 

В приведенном выше запросе мы используем столбец Name таблицы с именем Sample. Столбец Имя содержит полное имя сотрудника и запятую (,) между именем и фамилией. И мы пытаемся с помощью этого запроса заменить все символы после запятой (,) на пустую строку.

После выполнения запрос вернет следующий результат.

Результат запроса

Чтение Как выбрать последнюю запись в SQL Server

SQL Server Заменить строку между двумя символами

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

  • Сначала используйте функцию Charindex() , чтобы найти положение обоих символов в заданном выражении.
  • Затем используйте эти значения позиции в функции Substring() для извлечения подстроки между этими символами.
  • В последнем случае используйте извлеченную подстроку в функции Replace(), чтобы заменить ее новой подстрокой.

Теперь для демонстрации мы собираемся заменить подстроку между «@» и первым «.» в адресе электронной почты новой подстрокой. И для этого мы будем использовать следующий запрос.

 ВЫБРАТЬ [адрес электронной почты],  ЗАМЕНИТЬ ([адрес электронной почты],
ПОДСТРОКА([адрес электронной почты],
CHARINDEX('@',[электронная почта])+1,
CHARINDEX('.', [адрес электронной почты])-CHARINDEX('@', [адрес электронной почты])-1),
'почта') 
AS [Обновленная электронная почта]
FROM [Sample] 
  • В приведенном выше запросе мы используем функцию Replace() в операторе SELECT. В функции Replace() мы определили поле электронной почты как выражение для поиска.
  • После этого мы использовали функцию Substring(). В функции Substring() мы использовали 2 функции Charindex() для извлечения подстроки между «@» и «. ».
  • В конце концов, мы используем извлеченную подстроку для замены на « gmail ‘ подстрока.

Это даст следующий вывод.

Окончательный результат

SQL Server заменяет все вхождения строки

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

Вот наш образец строки: « Я пошел в чайный магазин, чтобы выпить чашку чая ». Строка содержит слово « чай» два раза, и мы собираемся использовать следующий запрос для замены «чай» с «кофе» для обоих случаев.

 DECLARE @substring varchar(60) = 'Я пошел в чайный магазин, чтобы выпить чашку чая'
ВЫБРАТЬ @substring AS [OLD_String],  ЗАМЕНИТЬ(@substring,'чай','кофе') 
AS [NEW_String] 

В приведенном выше запросе мы используем функцию Replace() для замены подстроки « чай » на « кофе» . И после выполнения он вернет следующий результат.

Результат запроса

Вам могут понравиться следующие руководства по SQL Server:

  • Примеры расширенных хранимых процедур в SQL Server
  • Как создать таблицу в SQL Server Management Studio
  • Строковые или двоичные данные будут усечены в SQL Server

В этом руководстве мы узнали о SQL Server Replace , Различные примеры на SQL Server Замените и охватывайте тему ниже.

  • SQL Server Заменить
  • SQL Server Заменить несколько символов
  • SQL Server Заменить специальный символ
  • SQL Server Заменить текст в столбце
  • SQL Server Заменить символ новой строки
  • SQL Server Заменить пустую строку значением
  • SQL Server Заменить null на 0
  • SQL Server Заменить одинарную кавычку
  • SQL Server Заменить пробел на null Сервер Заменить двойные кавычки одинарными
  • SQL Server Заменить символы с диакритическими знаками
  • SQL Server Заменить строку после символа
  • SQL Server Заменить строку между двумя символами
  • SQL Server Заменить все вхождения строки

Bijay

Меня зовут Bijay, у меня более 15 лет опыта работы в индустрии программного обеспечения. За это время я работал с MariaDB и использовал ее во многих проектах. Большинство наших читателей из США, Канады, Великобритании, Австралии, Новой Зеландии и т. д.

Хотите изучить MariaDB? Ознакомьтесь со всеми статьями и руководствами, которые я написал для MariaDB. Кроме того, я Microsoft MVP.

Заменить SQL | Замените функцию в SQL — sql — учебник по sql — изучите sql — от Microsoft награжден MVP — изучите за 30 секунд

Заменить SQL | Замена функции в SQL — sql — учебник по sql — изучите sql — от Microsoft награжден MVP — Изучите за 30 секунд | викитехнологии


  • Функция замены в SQL используется для обновления содержимого строки.
  • Вызов функции REPLACE() для MySQL, Oracle и SQL Server.
  • В SQL Server (Transact-SQL) функция REPLACE заменяет последовательность символов в строке другим набором символов без учета регистра.
  • Функция замены в SQL используется для обновления содержимого строки.
  • Вызов функции REPLACE() для MySQL, Oracle и SQL Server.