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