SQLite replace()
функцията ни позволява да заменим един низ (или част от низ) с друг низ.
Начинът, по който работи е, че предоставяте три аргумента; низът, който съдържа поднизът за замяна, поднизът в този низ за замяна и низът, с който да го замените.
Синтаксис
Синтаксисът е така:
replace(X,Y,Z)
Функцията връща низ, образуван чрез заместване на низ Z за всяко срещане на низ Y в низ X.
БИНАРНАТА последователност за сортиране се използва за сравнения. Ако Y е празен низ, върнете X непроменен. Ако Z не е първоначално низ, той се прехвърля към UTF-8 низ преди обработка.
Пример
Ето един прост пример за демонстрация.
SELECT replace('Red Sky', 'Red', 'Blue');
Резултат:
Blue Sky
Ако вторият аргумент не бъде намерен в първия аргумент, тогава нищо не се заменя и се връща оригиналният низ.
SELECT replace('Red Sky', 'Green', 'Blue');
Резултат:
Red Sky
Ако вторият аргумент е празен низ, тогава отново нищо не се заменя и се връща оригиналният низ.
SELECT replace('Red Sky', '', 'Blue');
Резултат:
Red Sky
Но същото не може да се каже за третия аргумент. Ако това е празен низ (и вторият аргумент е намерен в първия аргумент), тогава той ще премахне втория аргумент от низа.
SELECT replace('Red Sky', 'Red', '');
Резултат:
Sky
Това обаче няма да се случи, ако вторият аргумент не бъде намерен в низа.
SELECT replace('Red Sky', 'Blue', '');
Резултат:
Red Sky
Замяна с не-низ
Ако третият аргумент не е низ, той се прехвърля към UTF-8 низ преди обработката.
SELECT replace('Red Sky', 'Red', 8);
Резултат:
8 Sky
Пример за база данни
Ето пример, който взема данни от таблица на база данни и заменя даден низ/подниз с друг низ.
SELECT
ProductName,
replace(ProductName, 'Widget', 'Car')
FROM Products;
Резултат:
ProductName replace(ProductName, 'Widget', 'Car') -------------- ------------------------------------- Homer's Widget Homer's Car Peter's Widget Peter's Car Bob's Widget Bob's Car