В SQLite, substring() е псевдоним за substr() .
Той връща подниз от низ въз основа на дадено начално местоположение в низа. Необходими са два аргумента, а третият по избор се приема.
substring() именуването беше въведено в SQLite 3.34.0, който беше пуснат на 1 декември 2020 г. Причината, че substring() беше въведен синтаксис за съвместимост със SQL Server.
Синтаксис
Така че вече можете да извикате функцията по някой от следните начини:
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 аргумента
Ето един основен пример, за да демонстрирате как да използвате substring() с три аргумента.
SELECT substring('Dolemite', 3, 4); Резултат:
lemi
Пример с 2 аргумента
Ако пропусна третия аргумент от предишния пример, получавам следния резултат.
SELECT substring('Dolemite', 3); Резултат:
lemite
Отрицателна начална точка
Можете да предоставите отрицателна стойност за втория аргумент. Когато направите това, първият знак от подниз се намира чрез броене отдясно, а не отляво.
SELECT substring('Dolemite', -3); Резултат:
ite
Ето още един пример, този път уточнявам дължината на подниза.
SELECT substring('Dolemite', -7, 4); Резултат:
olem
Така отрицателните стойности имат същия ефект като при използване на substring() функция в MySQL. MySQL също има substr() функция, която е синоним на нейния substring() функция.
Това обаче е различно от начина, по който SQL Server третира отрицателните стойности. Когато подадете отрицателна стойност на substring() в SQL Server той просто ще започне да брои във въображаема точка, преди низът да започне.
Отрицателна дължина на подниз
Предишният пример използва отрицателна отправна точка. В този пример ще използвам отрицателна дължина. С това имам предвид, че ще дам отрицателна стойност за третия аргумент.
SELECT substring('Dolemite', -1, -4); Резултат:
emit
Така че предоставянето на отрицателна стойност за третия аргумент води до връщане на знаците, предхождащи началната точка.
Това важи и когато вторият аргумент е положителна стойност.
SELECT substring('Dolemite', 6, -4); Резултат:
olem
Пример за база данни
Ето пример, който използва substring() в заявка за база данни спрямо примерната база данни на Chinook.
SELECT
substring(Name, 1, 10),
Name
FROM Artist
ORDER BY Name DESC
LIMIT 10; Резултат:
substring(Name, 1, 10) Name ---------------------- --------------------------------- Zeca Pagod Zeca Pagodinho Youssou N' Youssou N'Dour Yo-Yo Ma Yo-Yo Ma Yehudi Men Yehudi Menuhin Xis Xis Wilhelm Ke Wilhelm Kempff Whitesnake Whitesnake Vinícius E Vinícius E Qurteto Em Cy Vinícius E Vinícius E Odette Lara Vinícius D Vinícius De Moraes & Baden Powell
В този случай върнах първите десет знака от Name колона. Също така върнах пълното съдържание на Name колона, за да сравните резултатите.