В этом руководстве вы узнаете, как использовать функцию SQL Server STUFF() для удаления части строки, а затем вставки подстроки в строку, начиная с указанной позиции.
- Обзор функции SQL Server STUFF()
- Примеры функций SQL Server STUFF()
- A) Использование функции STUFF() для вставки строки в другую строку в определенном месте
- B) Использование функции STUFF() для преобразования времени из формата ЧЧММ в ЧЧ:ММ
- C) Использование функции STUFF() для форматирования даты из формата MMDDYYY в MM/DD/YYYY:
- D) Использование функции STUFF() для маскировки номеров кредитных карт
Обзор функции SQL Server STUFF()
Функция STUFF() удаляет часть строки, а затем вставляет подстроку в строку, начиная с указанной позиции.
Ниже показан синтаксис функции STUFF():
STUFF( input_string , start_position , length , replace_with_substring )
Функция STUFF() принимает четыре аргумента:
- input_string — строка символов для обработки.
- start_position — это целое число, которое определяет позицию для начала удаления и вставки. Если start_position отрицательно, равно нулю или больше длины строки, функция вернет NULL.
- length указывает количество символов для удаления. Если length отрицательный, функция возвращает NULL. Если length больше длины input_string, функция удалит всю строку. Если length равен нулю, функция вставит replace_with_substring в начало input_string.
- replace_with_substring — это подстрока, которая заменяет символы длины входной_строки, начиная с начальной_позиции.
Примеры функций SQL Server STUFF()
Давайте рассмотрим несколько примеров использования функции SQL Server STUFF().
A) Использование функции STUFF() для вставки строки в другую строку в определенном месте
В этом примере функция STUFF() используется для удаления первых трех символов строки «SQL Tutorial», а затем вставки строки «SQL Server» в начало строки:
SELECT STUFF('SQL Tutorial', 1 , 3, 'SQL Server') result;
Вот что получилось:
result ------------------- SQL Server Tutorial (1 row affected)
B) Использование функции STUFF() для преобразования времени из формата ЧЧММ в ЧЧ:ММ
В следующем примере функция STUFF() используется для вставки двоеточия(:) в середину времени в формате ЧЧММ и возвращает новое значение времени в формате ЧЧ:ММ:
SELECT STUFF('1230', 3, 0, ':') AS formatted_time;
Вывод:
formatted_time -------------- 12:30 (1 row affected)
C) Использование функции STUFF() для форматирования даты из формата MMDDYYY в MM/DD/YYYY:
В следующем примере функция STUFF() вызывается дважды для форматирования даты из MMDDYYY в MM/DD/YYY:
SELECT STUFF(STUFF('03102019', 3, 0, '/'), 6, 0, '/') formatted_date;
Вывод заявления:
formatted_date -------------- 03/10/2019 (1 row affected)
D) Использование функции STUFF() для маскировки номеров кредитных карт
В этом примере функция STUFF() используется для маскировки номера кредитной карты. Она показывает только последние четыре символа номера кредитной карты:
DECLARE @ccn VARCHAR(20) = '4882584254460197'; SELECT STUFF(@ccn, 1, LEN(@ccn) - 4, REPLICATE('X', LEN(@ccn) - 4)) credit_card_no;
Вот что получилось:
credit_card_no ----------------- XXXXXXXXXXXX0197 (1 row affected)
В этом руководстве вы узнали, как использовать функцию SQL Server STUFF() для удаления части строки и вставки новой подстроки, начиная с указанной позиции.