Créer un delimitted chaîne à partir d'une requête dans DB2
Je suis en train de créer un delimitted chaîne à partir des résultats d'une requête dans DB2 sur l'iSeries (as/400). J'ai fait cela en T-SQL, mais ne peut pas trouver un moyen de le faire ici.
Voici mon code T-SQL. Je suis à la recherche d'une équivalence dans DB2.
DECLARE @a VARCHAR(1000)
SELECT @a = COALESCE(@a + ', ' + [Description], [Description])
FROM AP.Checkbooks
SELECT @a
Si les descriptions dans ma table ressemble à ceci:
Desc 1
Desc 2
Desc 3
Alors il sera de retour ce:
Desc 1, Desc 2, Desc 3
Dans MySQL, ce serait " GROUP_CONCAT()'.
OriginalL'auteur Jeff Stock | 2010-09-16
Vous devez vous connecter pour publier un commentaire.
Essentiellement, vous êtes à la recherche pour l'équivalent de MySQL
GROUP_CONCAT
fonction d'agrégation dans DB2. Selon un thread que j'ai trouvé, vous pouvez reproduire ce comportement en passant par laXMLAGG
fonction:Ce serait de retour
(ou doit, si je suis en train de lire les choses correctement)
as varchar(1024)
àas clob(1024)
J'ai été à la recherche de cette années. Cela fonctionne exactement ce dont j'ai besoin. Je vous remercie.
OriginalL'auteur CanSpice
Vous pouvez faire cela en utilisant les expressions de table communes (expressions de table communes) et la récursivité.
OriginalL'auteur Andy Wilson
Je suis en train de le faire dans OLEDB et à partir de ce que je comprends, vous ne pouvez pas faire cela, parce que vous ne pouvez pas faire quelque chose de compliqué en SQL pour OLEDB comme déclarer des variables ou créer une table. Donc je suppose qu'il n'existe aucun moyen.
XMLAGG
n'est pas disponible pour vous, si.Correct, je suppose que je n'ai pas XMLAGG, car il ne reconnaît pas tout ce qui est dans une requête OLEDB.
Il peut utiliser une base de données de la fonction
OriginalL'auteur Jeff Stock
Si vous utilisez DB2 9.7 ou plus, vous pouvez utiliser LISTAGG fonction. Jetez un oeil ici:
http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0058709.html
OriginalL'auteur Mensur