Као таква, манипулација стринговима је уобичајен задатак који укључује манипулацију и трансформацију вредности стрингова у одређени формат.
Једна од најмоћнијих функција у СКЛ-у која се бави операцијама са стринговима је функција РЕГЕКСП_РЕПЛАЦЕ(). Ова функција нам омогућава да извршимо претрагу и замену засновану на регуларном изразу. Ако сте упознати са регуларним изразом, знате колико моћна ова функција може бити.
У овом водичу ћемо научити како можемо да користимо ову функцију за претрагу и замену стрингова у СКЛ бази података.
СКЛ РЕГЕКСП_РЕПЛАЦЕ
СКЛ РЕГЕКСП_РЕПЛАЦЕ() је функција која нам омогућава да извршимо подударање и замену шаблона заснованог на регуларном изразу унутар датог низа.
Регуларни израз или регек је постављени образац и чувари места који нам омогућавају да упаримо и манипулишемо стринговима или подстринговима који прате одређени образац.
Добро је имати на уму да сваки механизам базе података може донекле имплементирати синтаксу и функционалност функције.
Међутим, можемо изразити његову синтаксу на следећи начин:
РЕГЕКСП_РЕПЛАЦЕ(улазни низ, образац, замена [, заставице])
Параметри функције су изражени на следећи начин:
- инпут_стринг – Ово специфицира стринг унутар којег желимо да претражимо и заменимо.
- Образац – Ово одређује образац регуларног израза који желимо да ускладимо унутар улазног низа.
- Замена – Ово специфицира стринг који замењује подударне подстрингове.
- Заставице – Скуп опционих заставица које могу помоћи да се модификује функционалност регуларног израза. На пример, можемо да омогућимо глобалну претрагу, подударање без обзира на велика и мала слова, итд. Ова функција варира у зависности од механизма базе података.
Примери:
Да бисмо боље разумели како ова функција функционише, погледајмо неколико примера како да је користимо.
Пример 1: Основна употреба
Претпоставимо да имамо табелу која садржи информације о запосленима као што је приказано у следећем примеру излаза:
Размотримо случај у којем желимо да заменимо појављивање стринга „Чарли“ на „Матју“. Можемо користити упит на следећи начин:
СЕЛЕЦТРЕГЕКСП_РЕПЛАЦЕ(фирст_наме, 'Цхарлие', 'Маттхев') АС ново_наме
ИЗ
запослени;
Дати пример демонстрира основну претрагу и замену да бисте пронашли стринг „Чарли“ из колоне „фирст_наме“ и заменили га са „Маттхев“.
Излаз:
Пример 2: Замена без обзира на велика и мала слова
У неким случајевима, можда ћете желети да извршите претрагу без обзира на велика и мала слова. То значи да ће функција гледати само садржај стринга, а не стварна мала слова алфанумеричких слова.
У том случају користимо „и“ као ознаку функције на следећи начин:
СЕЛЕЦТ РЕГЕКСП_РЕПЛАЦЕ(опис_производа, Самсунг, Аппле, 'и') КАО измењеноОД производа;
Постављањем заставице на „и“, функција одговара свим речима које одговарају „Самсунгу“, без обзира на величину слова.
Закључак
У овом примеру смо истражили како да користимо и радимо са функцијом РЕГЕКСП_РЕПЛАЦЕ() да бисмо извршили претрагу и замену на основу обрасца регуларног израза.