PostgreSQL La base de donnees la plus sophistiquee au monde.

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

support:trucs_et_astuces:diviser_un_texte_en_plusieurs_lignes [2008/10/15 16:55] (Version actuelle)
ioguix créée
Ligne 1: Ligne 1:
 +====== Diviser un texte en plusieurs lignes ======
  
 +Que faire si vous avez une chaîne, que vous voulez la séparer en plusieurs morceaux suivant un pattern et que vous voulez récupérer chaque morceau sur une ligne ?
 +
 +Commencer par créer la fonction suivante :
 +
 +<code sql>​CREATE OR REPLACE FUNCTION split_to_rows(TEXT,​TEXT) RETURNS SETOF TEXT
 +
 +AS $$
 +
 +    SELECT (string_to_array($1,​ $2))[s.i]
 +
 +    FROM generate_series(
 +
 +        1,
 +
 +        array_upper(string_to_array($1,​ $2), 1)
 +
 +    ) AS s(i);
 +
 +$$ language sql strict;
 +</​code>​
 +
 +Pour l'​utiliser,​ rien de plus simple :
 +
 +<​code>​dev=#​ select split_to_rows('​aa--bb--cc','​--'​);​
 +
 +split_to_rows
 +---------------
 +aa
 +bb
 +cc
 +(3 rows)</​code>​
 +
 +Cette fonction a été écrite par David Fetter (voir son [[http://​archives.postgresql.org/​pgsql-general/​2005-12/​msg00080.php|message sur pgsql-general]]).
 +
 +-- \\
 +Guillaume Lelarge le 13/10/2006
 
support/trucs_et_astuces/diviser_un_texte_en_plusieurs_lignes.txt · Dernière modification: 2008/10/15 16:55 par ioguix