PostgreSQL Fonction SUBSTRING() avec exemple Regex

โšก Rรฉsumรฉ intelligent

PostgreSQL SOUS-TรŠTE extracts renvoie une partie d'une chaรฎne, en utilisant une position de dรฉpart et une longueur optionnelles, et il compare รฉgalement le texte ร  une expression rรฉguliรจre POSIX pour extraire des modรจles tels que des nombres ou des codes.

  • ๐Ÿ“‹ syntaxe: substring( chaรฎne [ร  partir du dรฉbut] [pour la longueur] ) renvoie une portion de la chaรฎne source.
  • 1๏ธโƒฃ Postes: Les positions des caractรจres commencent ร  1, et l'omission de la longueur se lit jusqu'ร  la fin de la chaรฎne.
  • ???? Expression rรฉguliรจre : SOUS-CHAรŽNE(chaรฎne DE motif) extracc'est le premier texte correspondant ร  une expression rรฉguliรจre POSIX.
  • ๐Ÿงฎ Grouping: Un groupe entre parenthรจses dans le modรจle ne renvoie que la partie de la correspondance qui a รฉtรฉ capturรฉe.
  • ๏ธ pgAdmin : Chaque requรชte de sous-chaรฎne s'exรฉcute de la mรชme maniรจre dans l'รฉditeur de requรชtes pgAdmin.
  • ๐Ÿค– Aide IA : Les assistants IA gรฉnรจrent et expliquent les modรจles d'expressions rรฉguliรจres pour une extraction prรฉcise de sous-chaรฎnes.traction.

PostgreSQL Fonction SUBSTRING avec Regex

Qu'est-ce que le PostgreSQL Sous-chaรฎne ?

Le PostgreSQL La fonction substring vous aide ร  extrairetracLa fonction `t` renvoie une partie d'une chaรฎne de caractรจres. Au lieu de renvoyer la chaรฎne entiรจre, elle n'en renvoie qu'une portion, ce qui est utile pour supprimer les codes et lire les champs de largeur fixe.

Syntaxe

Le PostgreSQL La fonction sous-chaรฎne prend la syntaxe suivante :

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

Paramรจtres

Les paramรจtres suivants sont utilisรฉs avec la fonction substring :

string La chaรฎne source dont le type de donnรฉes est varchar, char, string, etc.
position de dรฉpart Paramรจtre optionnel. Il indique l'endroit oรน l'extracLa chaรฎne commencera. Si vous omettez ce paramรจtre, l'exempletracLa sรฉquence commence ร  la position 1, qui est le premier caractรจre de la chaรฎne.
longueur Paramรจtre optionnel. Il indique le nombre de caractรจres ร  extrairetracextrait de la chaรฎne. Si vous omettez ce paramรจtre, la fonction extracts de la position de dรฉpart ร  la fin de la chaรฎne.

Exemples

Dans cet exemple, nous voulons extract 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 prรฉcisรฉ la position de dรฉpart, donc l'extracLa section de la sous-chaรฎne a commencรฉ ร  la position 1. Quatre caractรจres ont รฉtรฉ extraits.tracted pour renvoyer le rรฉsultat ci-dessus.

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'extracLa partie de la sous-chaรฎne doit commencer ร  la position 1 et 4 caractรจres doivent รชtre extracTed.

Extract 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 comme รฉtant 5. ร‰tant donnรฉ le nombre de caractรจres ร  exprimertracted n'a pas รฉtรฉ prรฉcisรฉ, l'extraction s'est propagรฉe jusqu'au bout 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รฉ extraction ร  la position 5, et 2 caractรจres รฉtaient extracTed.

Considรฉrez le tableau Livre ci-dessous :

PostgreSQL Table de livres de sous-chaรฎnes

Nous voulons avoir une idรฉe approximative du titre de chaque livre. Nous pouvons extracne conservez 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 rรฉsultat de 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, vous pouvez extracLa fonction `substring` rรฉcupรจre une sous-chaรฎne correspondant ร  une expression rรฉguliรจre POSIX spรฉcifiรฉe. Dans ce cas, elle utilise 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 Il peut s'agir de varchar, char, string, etc. Le paramรจtre matching_pattern correspond au modรจle utilisรฉ pour la recherche 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 est ยซ Votre รขge est de 22 ans ยป. Dans le modรจle, nous recherchons un motif numรฉrique ; lorsqu'il est trouvรฉ, la fonction de sous-chaรฎneโ€ฆtracIl n'y a que deux caractรจres.

Comment extraire des sous-chaรฎnes de caractรจres avec pgAdmin

Voyons maintenant comment ces actions sont rรฉalisรฉes avec pgAdmin. Les requรชtes ne nรฉcessitant pas de base de donnรฉes peuvent รชtre exรฉcutรฉes directement depuis l'รฉditeur de requรชtes. Il suffit de procรฉder comme suit :

ร‰tape 1) Connectez-vous ร  votre compte pgAdmin.

ร‰tape 2) Dans pgAdmin, cliquez sur l'icรดne Outil de requรชte.

Faire correspondre les sous-chaรฎnes ร  l'aide de pgAdmin

La fenรชtre de l'รฉditeur de requรชtes s'ouvrira.

ร‰tape 3) Saisissez la requรชte suivante dans la fenรชtre de l'รฉditeur.

SELECT substring('Guru99' for 4);

ร‰tape 4) 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. Elle devrait renvoyer le rรฉsultat suivant :

Faire correspondre les sous-chaรฎnes ร  l'aide de pgAdmin

Exemple 2:

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

Exemple 3:

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) Dans la barre de navigation ร  gauche, cliquez sur Bases de donnรฉes, puis 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 rรฉsultat de 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) Saisissez 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

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

FAQ

SUBSTR est un alias plus court de SUBSTRING et renvoie une partie d'une chaรฎne. SUBSTRING prend รฉgalement en charge les mots clรฉs FROM et FOR standard SQL ainsi que les expressions rรฉguliรจres POSIX, tandis que SUBSTR n'accepte que des arguments de position et de longueur sรฉparรฉs par des virgules.

PostgreSQL La fonction SUBSTRING indexe les caractรจres ร  partir de 1, donc le premier caractรจre se trouve ร  la position 1 et non ร  la position 0. Passer une position de dรฉpart de 1 renvoie la chaรฎne ร  partir de son premier caractรจre.

Lorsque le modรจle POSIX ne correspond ร  rien, SUBSTRING renvoie NULL au lieu d'une chaรฎne vide. Tester le rรฉsultat avec IS NULL permet de gรฉrer les lignes oรน le modรจle attendu est absent.

Utilisez une expression rรฉguliรจre qui capture ce qui suit le caractรจre. Par exemple, SUBSTRING(email FROM '@(.*)') renvoie tout ce qui suit le signe @, vous donnant ainsi le domaine de chaque adresse e-mail.

Utilisez SUBSTRING lorsque vous avez besoin du premier texte correspondant sous forme de valeur simple. Choisissez regexp_matches() lorsque vous souhaitez que toutes les correspondances ou plusieurs groupes de capture soient renvoyรฉs sous forme de tableau, car SUBSTRING ne renvoie que la premiรจre correspondance.

Les assistants IA tels que GitHub Copilot transforment une description en langage clair en un modรจle POSIX, expliquent ร  quoi correspond chaque jeton et suggรจrent des chaรฎnes de test, ce qui rรฉduit les essais et erreurs lors de la construction d'extraits de sous-chaรฎnes.tracrequรชtes de tion.

Oui. Dรฉcrivez la partie du texte que vous souhaitez extraire, et l'assistant IA gรฉnรฉrera une requรชte SUBSTRING avec les positions correctes ou une expression rรฉguliรจre, que vous pourrez exรฉcuter et affiner dans pgAdmin.

Oui, la correspondance de sous-chaรฎnes POSIX est sensible ร  la casse par dรฉfaut. Pour une correspondance indiffรฉrente ร  la casse, convertissez les deux entrรฉes en minuscules, par exemple : SUBSTRING(lower(name) FROM lower(pattern)), afin que les majuscules et les minuscules soient traitรฉes de la mรชme maniรจre.

Rรฉsumez cet article avec :