PostgreSQL Data Row Value Connection
] Dans les opérations de base de données relationnelles, il est souvent nécessaire de traiter les données avant d'obtenir le résultat final. Une tâche commune consiste à concaténer les valeurs de plusieurs lignes basées sur des identifiants courants. Dans PostgreSQL, la fonction groupe_concat
fournit une solution simple pour cela.
group_concat
fonction PostgreSQL version 9.0 et ci-dessus présente la fonction agrégée groupe_concat
, qui prend un ensemble de valeurs dans une colonne et les concaténe en une seule chaîne. group_concat
La syntaxe est la suivante:
GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])
paramètre:
Considérez le tableau suivant appelé "Sample_Data":
id | value |
---|---|
tm67 | 4 |
tm67 | 9 |
tm67 | 72 |
72 | |
tm99 | 2 |
3
SELECT id, GROUP_CONCAT(value) AS concatenated_values
FROM sample_data
GROUP BY id;
Pour concaténer les valeurs dans la colonne "Value" de chaque "id" unique, nous pouvons utiliser groupe_concat
comme indiqué ci-dessous:Cette requête produira la sortie suivante: | |
---|---|
ConcaTenated_values | |
tm67 | 4,9,72 |
2,3
SELECT id, string_agg(value, ',') AS concatenated_values
FROM sample_data
GROUP BY id;
Syntaxe alternative pour postgresql 9.0
En commençant par PostgreSQL version 9.0, vous pouvez utiliser la syntaxe alternative de
groupe_concat
sélectionnez id, string_agg (valeur, ',') comme concaténé_values
De Sample_data
Groupe par id;
Cette syntaxe est équivalente à la syntaxe
groupe_concat
en conclusion
En utilisant le groupe_concat ou les fonctions
string_agg, vous pouvez facilement concaténer les données multi-rangs dans PostgreSQL. La syntaxe à choisir dépend de votre version PostgreSQL et de vos préférences personnelles.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3