concaténer les chaînes de deux lignes différentes dans une table
Question
Nous essayons de retravailler le SQL dans un produit. Le produit stocke XML dans un tableau comme suit:
XML_STORAGE - UID IDENTITY - PARENT_ID INTEGER - SEQ INTEGER - XML VARCHAR(3800)
La façon actuelle de faire est la suivante:
Récupérer toutes les lignes pour PARENT_ID = n. Ensuite, allez sur les lignes récupérées dans le code et concaténer les chaînes XML dans un grand XML avant l'analyse. La colonne SEQ est utilisée pour COMMANDER le résultat pour que les chaînes XML peuvent être concaténées correctement. Espérons que cela est clair.
Ce que nous essayons de faire est de retravailler ce que nous pouvons utiliser une variante SQL pour récupérer la chaîne entière et juste chercher une rangée de DB2. Y at-il une fonction DB2 qui nous permettra de concaténer la chaîne dans toutes ces lignes dans une grande chaîne dans l'ensemble de résultats. Comment un tel regard SQL. S'il vous plaît, faites-moi savoir. Toute aide est très appréciée.
Merci! - Azeem
La solution
Vérifier les requêtes récursives dans DB2, comme mentionné ici
Autres conseils
Oui, il y a. Enfermez XMLELEMENT
, XMLAGG
et XMLSERIALIZE
. Cela devrait faire l'affaire pour la plupart des gens. Un exemple, vous pouvez voir dans la question suivante sortie une requête SQL XML DB2 dans un fichier XML unique,
Modifier
Pourquoi ne pas faire quelque chose comme select '<tag1>', col1. '</tag1><tag2>', col2, '</tag2>' from table
? Si vous avez besoin de combiner toutes les lignes dans un de lancer un post-traitement pour éliminer les sauts de ligne.