PostgreSQL Fonction SUBSTRING() avec exemple Regex

Qu’est ce qu' PostgreSQL Sous-chaîne ?

Votre PostgreSQL La fonction de sous-chaîne vous aide à extraire et à renvoyer une partie d'une chaîne. Au lieu de renvoyer la chaîne entière, il n’en renvoie qu’une partie.

Syntaxe

Votre PostgreSQL La fonction sous-chaîne prend la syntaxe suivante :

substring( string [from starting_position] [for length] )

Paramètres

Nom Description
un magnifique La chaîne source dont le type de données est varchar, char, string, etc.
position de départ C'est un paramètre facultatif. Il désigne l'endroit où commencera l'extraction de la chaîne. Si vous omettez ce paramètre, l'extraction démarrera à partir de la position 1, qui est le premier caractère de la chaîne.
longueur C'est un paramètre facultatif. Il indique le nombre de caractères à extraire de la chaîne. Si vous omettez ce paramètre, la fonction extraira de Starting_position jusqu'à la fin de la chaîne.

Exemples

Dans cet exemple, nous souhaitons extraire les 4 premiers caractères du mot Guru99 :

SELECT substring('Guru99' for 4);

La commande renverra ce qui suit :

PostgreSQL Sous-chaîne

Nous n'avons pas spécifié la position de départ, donc l'extraction de la sous-chaîne commence à la position 1. 4 caractères ont été extraits pour renvoyer ce qui précède.

L'exemple suivant montre comment spécifier la position de départ :

SELECT substring('Guru99' from 1 for 4);

La commande renverra ce qui suit :

PostgreSQL Sous-chaîne

Nous avons précisé que l'extraction de la sous-chaîne doit commencer à partir de la position 1 et que 4 caractères doivent être extraits.

Extrayons 99 de la chaîne Guru99 :

SELECT substring('Guru99' from 5);

La commande renverra ce qui suit :

PostgreSQL Sous-chaîne

Nous avons spécifié la position de départ à 5. Le nombre de caractères à extraire n'étant pas spécifié, l'extraction s'est déroulée jusqu'à la fin de la chaîne.

Voici un autre exemple:

SELECT substring('Guru99' from 5 for 2);

La commande renverra ce qui suit :

PostgreSQL Sous-chaîne

Nous avons commencé l'extraction à la position 5, et 2 caractères ont été extraits.

Considérez le tableau Livre ci-dessous :

PostgreSQL Sous-chaîne

Nous voulons avoir une idée approximative du nom de chaque livre. Cependant, nous ne pouvons extraire que les 15 premiers caractères de la colonne nom du tableau :

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

La commande renverra ce qui suit :

PostgreSQL Sous-chaîne

Nous avons maintenant une idée générale du nom de chaque livre.

Faire correspondre des sous-chaînes avec une expression régulière SQL

In PostgreSQL, nous pouvons extraire une sous-chaîne correspondant à une expression régulière POSIX spécifiée. Dans ce cas, la fonction substring est utilisée avec la syntaxe suivante :

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Voici une explication des paramètres ci-dessus :

La chaîne est la chaîne source dont Type de données est varchar, char, chaîne, etc.

Le matching_pattern est le modèle à utiliser pour rechercher dans la chaîne.

Exemples

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

La commande renverra ce qui suit :

Faire correspondre des sous-chaînes avec une expression régulière SQL

Notre chaîne d'entrée indique que votre âge est de 22 ans. Dans le modèle, nous recherchons un modèle numérique dans notre chaîne lorsque celui-ci est trouvé, la fonction de sous-chaîne ne doit extraire que deux caractères.

Comment faire correspondre des sous-chaînes à l'aide de pgAdmin

Voyons maintenant comment les actions sont effectuées à l'aide de pgAdmin.

Les requêtes ci-dessus pour lesquelles nous n'avons pas besoin d'une base de données peuvent être exécutées directement à partir de la fenêtre de l'éditeur de requêtes. Faites simplement ce qui suit :

Étape 1) Connectez-vous à votre compte.
Connectez-vous à votre compte pgAdmin.

Étape 2) Sur pgAdmin,
Cliquez sur l'icône de l'éditeur de requêtes.

Faire correspondre les sous-chaînes à l'aide de pgAdmin

La fenêtre de l'éditeur de requêtes s'ouvrira.

Étape 3) Tapez la requête.
Tapez la requête suivante dans la fenêtre de l'éditeur.

SELECT substring('Guru99' for 4);

Étape 4) Exécuter l'ordre
Cliquez sur l'icône Exécuter pour exécuter la requête.

Faire correspondre les sous-chaînes à l'aide de pgAdmin

Étape 5) L'exécution de la requête est terminée.
Il devrait renvoyer ce qui suit :

Faire correspondre les sous-chaînes à l'aide de pgAdmin

2 Exemple:

SELECT substring('Guru99' from 1 for 4);

Il devrait renvoyer ce qui suit :

Faire correspondre les sous-chaînes à l'aide de pgAdmin

Voici l'exemple suivant :

SELECT substring('Guru99' from 5);

Il devrait renvoyer ce qui suit :

Faire correspondre les sous-chaînes à l'aide de pgAdmin

3 Exemple:

SELECT substring('Guru99' from 5 for 2);

Il devrait renvoyer ce qui suit :

Faire correspondre les sous-chaînes à l'aide de pgAdmin

Maintenant, exécutons l'exemple en utilisant la table Book de la base de données Demo :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Faire correspondre les sous-chaînes à l'aide de pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Étape 4) Cliquez sur le bouton Exécuter.

Faire correspondre les sous-chaînes à l'aide de pgAdmin

Il devrait renvoyer ce qui suit :

PostgreSQL Sous-chaîne

Nous avons maintenant une idée de base du nom de chaque livre.

Faire correspondre des sous-chaînes avec une expression régulière SQL

Pour accomplir la même chose sur pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2) Cliquez sur l'icône de l'éditeur de requêtes.

Faire correspondre des sous-chaînes avec une expression régulière SQL

La fenêtre de l'éditeur de requêtes s'ouvrira.

Étape 3) Tapez la requête suivante dans la fenêtre de l'éditeur.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Étape 4) Cliquez sur l'icône Exécuter pour exécuter la requête.

Faire correspondre des sous-chaînes avec une expression régulière SQL

Il devrait renvoyer ce qui suit :

Faire correspondre des sous-chaînes avec une expression régulière SQL

Résumé

  • Votre PostgreSQL La fonction Substring permet d’extraire et de renvoyer seulement une partie d’une chaîne.
  • Le premier caractère de la chaîne est en position 1.
  • Si le nombre de caractères à extraire de la chaîne n'est pas spécifié, la fonction extraira les caractères de la position de début spécifiée jusqu'à la fin de la chaîne.
  • Si le nombre de caractères à extraire est spécifié, seul ce nombre de caractères sera extrait.

Téléchargez la base de données utilisée dans ce tutoriel