sql >> Databáze >  >> RDS >> SQLite

Jak Substr() funguje v SQLite

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čínaje Y ).

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          

  1. Jak přidat 10 sekund v current_timestamp SQL (Oracle)

  2. 12 Doporučené postupy zabezpečení MySQL/MariaDB pro Linux

  3. Úroveň izolace opakovatelného čtení

  4. Duplikujte, kopírujte nebo zálohujte tabulky v MySQL, MariaDB, Oracle, PostgreSQL, DB2 a SQLite pomocí Create Table As SQL