SQLite substr()
Funkce vám umožňuje vrátit podřetězec z řetězce na základě daného počátečního umístění v řetězci.
Vyžaduje dva argumenty a přijímá třetí volitelný argument.
Aktualizovat :Od SQLite 3.34.0 (vydáno 1. prosince 2020), substr()
lze nyní nazvat substring()
pro kompatibilitu se serverem SQL.
Syntaxe
Můžete zavolat substr()
kterýmkoli z následujících způsobů:
substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
X
je úplný řetězec obsahující podřetězec, který chcete vrátit.Y
je umístění prvního znaku podřetězce, který chcete z tohoto řetězce vrátit.Z
je počet znaků, které chcete vrátit. Pokud je vynechán, vrátí se všechny následující znaky (počínajeY
).
Pokud X
je řetězec, pak znaky indexy odkazují na skutečné znaky UTF-8. Pokud X
je BLOB, pak indexy odkazují na bajty.
Všimněte si, že substring()
syntaxe je dostupná pouze od SQLite 3.34.0.
Příklad se 3 argumenty
Zde je základní příklad, který ukazuje, jak používat substr()
se třemi argumenty.
SELECT substr('Industrial', 3, 4);
Výsledek:
dust
Příklad se 2 argumenty
Pokud vynechám třetí argument z předchozího příkladu, dostanu následující výsledek.
SELECT substr('Industrial', 3);
Výsledek:
dustrial
Negativní výchozí bod
Pro druhý argument můžete zadat zápornou hodnotu. Když to uděláte, první znak podřetězce je nalezen počítáním zprava, nikoli zleva.
SELECT substr('Industrial', -3);
Výsledek:
ial
Zde je další příklad, tentokrát specifikuji délku podřetězce.
SELECT substr('Industrial', -8, 4);
Výsledek:
dust
Takže záporné hodnoty mají stejný účinek jako při použití substring()
funkce v MySQL. MySQL má také substr()
funkce, která je synonymem pro její substring()
funkce.
To se však liší od toho, jak SQL Server zachází se zápornými hodnotami. Když předáte zápornou hodnotu do substring()
v SQL Server jednoduše začne počítat v pomyslném bodě před začátkem řetězce.
Délka záporného podřetězce
Předchozí příklad používal negativní výchozí bod. V tomto příkladu použiji zápornou délku. Tím chci říct, že poskytnu zápornou hodnotu pro třetí argument.
SELECT substr('Industrial', -3, -4);
Výsledek:
ustr
Takže zadání záporné hodnoty pro třetí argument má za následek návrat znaků předcházejících počátečnímu bodu.
To platí také v případě, že druhý argument je kladná hodnota.
SELECT substr('Industrial', 7, -4);
Výsledek:
dust
Příklad databáze
Zde je příklad, který používá substr()
v databázovém dotazu proti vzorové databázi Chinook.
SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;
Výsledek:
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