SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment fonctionne Substr() dans SQLite

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 de Y ).

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