Existe-t-il un moyen simple en SQL de convertir une chaîne ou un tableau en lignes d'une table? Par exemple, restons la chaîne est 'a, b, c, d, e, f, g'. Je préférerais une instruction SQL qui prend cette chaîne, la divise en virgules et insère les chaînes résultantes dans une table. Dans PostgreSQL, je peux utiliser regexp_split_to_array() et diviser la chaîne en un tableau. Donc, si vous connaissez un moyen d'insérer des éléments d'un tableau en tant que lignes dans une table, cela fonctionnerait aussi.SQL: convertir des jetons dans une chaîne ou des éléments d'un tableau en lignes d'une table
Répondre
pour mettre un tableau dans un ensemble de lignes, vous pouvez simplement utiliser unnest():
SELECT unnest('{1,2,3,4}'::int[])
que vous pouvez ensuite bien sûr combiner avec regexp_split_to_array, pour devenir: Ou comme mentionné précédemment, en utilisant string_to_array() au lieu de regexp_split_to_array() s'il s'agit d'une simple division.
Il est peut-être important de noter que 'unnest' existe depuis Postgres 8.4 et plus. – Wolph
Oh ouais, bon point. –
J'utiliser string_to_array
à la place, il est un peu plus vite :) Peu importe si, vous pouvez créer un table
hors de lui avec quelques astuces generate_series
.
CREATE OR REPLACE FUNCTION array_to_table(anyarray)
RETURNS SETOF anyelement AS $$
SELECT $1[i]
FROM generate_series(array_lower($1,1), array_upper($1,1)) g(i);
$$ LANGUAGE SQL STRICT IMMUTABLE;
SELECT * FROM array_to_table(string_to_array('a,b,c,d,e,f,g', ','));
generate_series (DE, DE, STEP) avec (1, 7, 2) produit une série 1, 3, 5, 7 qui peut être utilisé pour indexer le tableau de sous-chaîne (colonne, INDEX, LEN) :
SELECT substring ('a,b,c,d', generate_series (1, 7, 2), 1) AS x ;
x
---
a
b
c
d
- 1. SQL Convertir des lignes en colonnes
- 2. Convertir des éléments XML en un tableau
- 3. Serveur SQL: convertir des lignes en colonnes
- 4. Comment convertir une chaîne Ruby avec des parenthèses en tableau?
- 5. style alternant des lignes dans une table
- 6. Sql sélectionner des lignes contenant une partie de la chaîne
- 7. Convertir une chaîne compliquée en un tableau en php
- 8. Convertir un tableau en chaîne
- 9. Convertir une chaîne en tableau avec Javascript?
- 10. Convertir une chaîne Java en tableau
- 11. Affichage des éléments 'select' dans une table de formulaire
- 12. Comment convertir cette chaîne SQL en une chaîne ibatis sql?
- 13. SQL combiner des colonnes dans une chaîne
- 14. T SQL Convertir une ligne en chaîne
- 15. Comment convertir une chaîne en tableau dans Delphi?
- 16. convertir la chaîne séparée par des virgules en table SQL dans SP
- 17. Comment convertir des champs en lignes via SQL dans MS Access 2007 ou MS SQL Server 2005
- 18. Comment trouver des lignes dans le tableau SQL où xPath
- 19. Envelopper une table ou des colonnes DIV sur plusieurs lignes
- 20. Convertir une chaîne en tableau (android)
- 21. Comment convertir une chaîne en tableau?
- 22. Table des utilisateurs - une table ou deux?
- 23. chaîne convertir en tableau multidimensionnel
- 24. déclarer ou convertir une chaîne au format de tableau PHP
- 25. Recherche de jetons dans une chaîne Java
- 26. Dans Sql Server, comment convertir des chaînes binaires en binaire?
- 27. sélectionner des lignes dans une table à l'exception des lignes d'en-tête de table
- 28. Insérer des lignes dans la table
- 29. Convertir une chaîne ou une chaîne [] en liste avec Groovy
- 30. Comment utiliser SQL pour sélectionner des lignes contenant plus de 50 lignes dans une autre table?
Excellentes réponses et commentaires. Merci à tous! – slowpoison