Le SQLite substr()
La fonction vous permet de renvoyer une sous-chaîne à partir d'une chaîne, en fonction d'un emplacement de départ donné dans la chaîne.
Il nécessite deux arguments et accepte un troisième argument facultatif.
Mettre à jour :A partir de SQLite 3.34.0 (sortie le 1er décembre 2020), substr()
peut maintenant être appelé substring()
pour la compatibilité avec SQL Server.
Syntaxe
Vous pouvez appeler substr()
de l'une des manières suivantes :
substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
X
est la chaîne complète qui contient la sous-chaîne que vous souhaitez renvoyer.Y
est l'emplacement du premier caractère de la sous-chaîne que vous souhaitez renvoyer à partir de cette chaîne.Z
est le nombre de caractères que vous voulez renvoyer. S'il est omis, tous les caractères suivants sont renvoyés (à partir deY
).
Si X
est une chaîne, alors les indices de caractères font référence aux caractères UTF-8 réels. Si X
est un BLOB alors les indices font référence à des octets.
Notez que la substring()
la syntaxe n'est disponible qu'à partir de SQLite 3.34.0.
Exemple avec 3 arguments
Voici un exemple de base pour montrer comment utiliser substr()
avec trois arguments.
SELECT substr('Industrial', 3, 4);
Résultat :
dust
Exemple avec 2 arguments
Si j'omets le troisième argument de l'exemple précédent, j'obtiens le résultat suivant.
SELECT substr('Industrial', 3);
Résultat :
dustrial
Point de départ négatif
Vous pouvez fournir une valeur négative pour le deuxième argument. Lorsque vous faites cela, le premier caractère de la sous-chaîne est trouvé en comptant à partir de la droite plutôt que de la gauche.
SELECT substr('Industrial', -3);
Résultat :
ial
Voici un autre exemple, cette fois je précise la longueur de la sous-chaîne.
SELECT substr('Industrial', -8, 4);
Résultat :
dust
Ainsi, les valeurs négatives ont le même effet que lors de l'utilisation de la substring()
fonction dans MySQL. MySQL a aussi un substr()
fonction, qui est synonyme de sa substring()
une fonction.
Cependant, cela diffère de la façon dont SQL Server traite les valeurs négatives. Lorsque vous passez une valeur négative à substring()
dans SQL Server, il commencera simplement à compter à un point imaginaire avant le début de la chaîne.
Longueur de la sous-chaîne négative
L'exemple précédent utilisait un point de départ négatif. Dans cet exemple, je vais utiliser une longueur négative. Je veux dire par là que je vais fournir une valeur négative pour le troisième argument.
SELECT substr('Industrial', -3, -4);
Résultat :
ustr
Ainsi, si vous fournissez une valeur négative pour le troisième argument, les caractères précédant le point de départ seront renvoyés.
Cela s'applique également lorsque le deuxième argument est une valeur positive.
SELECT substr('Industrial', 7, -4);
Résultat :
dust
Exemple de base de données
Voici un exemple qui utilise substr()
dans une requête de base de données sur l'exemple de base de données Chinook.
SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;
Résultat :
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