SQLite substr() функцията ви позволява да върнете подниз от низ въз основа на дадено начално местоположение в низа.
Изисква два аргумента и приема трети незадължителен аргумент.
Актуализиране :От SQLite 3.34.0 (издадена на 1 декември 2020 г.), substr() вече може да се нарече substring() за съвместимост със SQL Server.
Синтаксис
Можете да извикате substr() по някой от следните начини:
substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y) Xе пълният низ, който съдържа поднизът, който искате да върнете.Yе местоположението на първия знак от подниз, който искате да върнете от този низ.Zе броят на знаците, които искате да бъдат върнати. Ако се пропусне, всички следващи знаци се връщат (започвайки отY).
Ако X е низ, тогава символните индекси се отнасят до действителните UTF-8 знаци. Ако X е BLOB, тогава индексите се отнасят до байтове.
Имайте предвид, че substring() синтаксисът е достъпен само от SQLite 3.34.0.
Пример с 3 аргумента
Ето основен пример, за да демонстрирате как да използвате substr() с три аргумента.
SELECT substr('Industrial', 3, 4); Резултат:
dust
Пример с 2 аргумента
Ако пропусна третия аргумент от предишния пример, получавам следния резултат.
SELECT substr('Industrial', 3); Резултат:
dustrial
Отрицателна начална точка
Можете да предоставите отрицателна стойност за втория аргумент. Когато направите това, първият знак от подниз се намира чрез броене отдясно, а не отляво.
SELECT substr('Industrial', -3); Резултат:
ial
Ето още един пример, този път уточнявам дължината на подниза.
SELECT substr('Industrial', -8, 4); Резултат:
dust
Така отрицателните стойности имат същия ефект като при използване на substring() функция в MySQL. MySQL също има substr() функция, която е синоним на нейния substring() функция.
Това обаче е различно от начина, по който SQL Server третира отрицателните стойности. Когато подадете отрицателна стойност на substring() в SQL Server той просто ще започне да брои във въображаема точка, преди низът да започне.
Отрицателна дължина на подниз
Предишният пример използва отрицателна отправна точка. В този пример ще използвам отрицателна дължина. С това имам предвид, че ще дам отрицателна стойност за третия аргумент.
SELECT substr('Industrial', -3, -4); Резултат:
ustr
Така че предоставянето на отрицателна стойност за третия аргумент води до връщане на знаците, предхождащи началната точка.
Това важи и когато вторият аргумент е положителна стойност.
SELECT substr('Industrial', 7, -4); Резултат:
dust
Пример за база данни
Ето пример, който използва substr() в заявка за база данни спрямо примерната база данни на Chinook.
SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10; Резултат:
substr(Title, 1, 20) -------------------- For Those About To R Balls to the Wall Restless and Wild Let There Be Rock Big Ones Jagged Little Pill Facelift Warner 25 Anos Plays Metallica By F Audioslave