SQL REGEXP_REPLACE

Sql Regexp Replace



Текстовите данни или низовете, както ги наричат ​​разработчиците, са основен градивен елемент за всяка функционална програма. Това не е по-различно, когато става въпрос за съхранение на данни. Почти всички бази данни съдържат някаква форма на текстова информация като имена, регистрационни файлове и др.

Като такова манипулирането на низове е често срещана задача, която включва манипулиране и трансформиране на стойностите на низове в конкретен формат.

Една от най-мощните функции в SQL, която се занимава с операции с низове, е функцията REGEXP_REPLACE(). Тази функция ни позволява да извършваме търсене и заместване, базирано на регулярен израз. Ако сте запознати с регулярния израз, знаете колко мощна може да бъде тази функция.







В този урок ще научим как можем да използваме тази функция за търсене и замяна на низове в SQL база данни.



SQL REGEXP_REPLACE

SQL REGEXP_REPLACE() е функция, която ни позволява да изпълняваме базирано на регулярен израз съпоставяне и заместване на шаблон в рамките на даден низ.



Регулярният израз, или регулярен израз, е зададен модел и контейнери, които ни позволяват да съпоставяме и манипулираме низовете или поднизовете, които следват определен модел.





Добре е да имате предвид, че всяка база данни може леко да имплементира синтаксиса и функционалността на функцията.

Можем обаче да изразим неговия синтаксис, както следва:



REGEXP_REPLACE(въведен_низ, шаблон, заместване [, флагове])

Функционалните параметри се изразяват в следното:

  1. input_string – Това указва низа, в който искаме да търсим и заместваме.
  2. Шаблон – Това указва шаблона на регулярен израз, който искаме да съпоставим във входния низ.
  3. Заместване – Това указва низа, който ще замени съответстващите поднизове.
  4. Флагове – Това е набор от незадължителни флагове, които могат да помогнат за модифициране на функционалността на регулярния израз. Например, можем да активираме глобалното търсене, съпоставянето без значение на главни и малки букви и т.н. Тази функция варира в зависимост от двигателя на базата данни.

Примери:

За да разберем по-добре как работи тази функция, нека разгледаме някои примери как да я използвате.

Пример 1: Основна употреба

Да предположим, че имаме таблица, която съдържа информацията за служителите, както е показано в следния примерен изход:

Да разгледаме случай, в който искаме да заменим появата на низа „Charlie“ с „Matthew“. Можем да използваме заявката, както следва:

ИЗБЕРЕТЕ

REGEXP_REPLACE(първо_име, 'Чарли', 'Матю') КАТО ново_име

ОТ

служители;

Даденият пример демонстрира основно търсене и замяна за намиране на низа „Charlie“ от колоната „first_name“ и замяната му с „Matthew“.

Изход:

Пример 2: Замяна без значение на главни и малки букви

В някои случаи може да поискате да извършите търсене без значение за главни и малки букви. Това означава, че функцията ще разглежда само съдържанието на низа, а не действителния регистър на буквено-цифровите букви.

В такъв случай използваме „i“ като функционален флаг, както следва:

SELECT REGEXP_REPLACE(product_description, Samsung, Apple, 'i') AS modified

ОТ продукти;

Като зададете флага на „i“, функцията съвпада с всички думи, които съответстват на „Samsung“, независимо от главните букви.

Заключение

В този пример проучихме как да използваме и работим с функцията REGEXP_REPLACE(), за да извършим търсене и замяна, базирано на модел на регулярен израз.