Erstellen Sie eine delimitted string aus einer Abfrage in DB2
Ich versuche zu erstellen delimitted string aus den Ergebnissen einer Abfrage in DB2 auf der iSeries (AS/400). Ich habe dies in T-SQL, aber kann nicht einen Weg finden, es zu tun hier.
Hier ist mein code in T-SQL. Ich bin auf der Suche nach einem equivelant in DB2.
DECLARE @a VARCHAR(1000)
SELECT @a = COALESCE(@a + ', ' + [Description], [Description])
FROM AP.Checkbooks
SELECT @a
Wenn die Beschreibungen in meiner Tabelle wie folgt Aussehen:
Desc 1
Desc 2
Desc 3
Dann wird es wieder dieses:
Desc 1, 2 Desc, Desc-3
- In MySQL wäre dies 'GROUP_CONCAT()'.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im wesentlichen sind Sie auf der Suche für den Gegenwert von MySQL ist
GROUP_CONCAT
Aggregat-Funktion in DB2. Nach einen thread hab ich gefunden, können Sie imitieren dieses Verhalten, indem Sie durch dieXMLAGG
Funktion:Dieser zurückkehren würde,
(oder sollte, wenn ich lese das richtig)
as varchar(1024)
zuas clob(1024)
Können Sie dies mit common table expressions (CTEs) und Rekursion.
Ich versuche zu tun, diese in OLE DB und von dem, was ich verstehe, Sie können nicht dies tun, weil Sie nicht tun können, etwas Phantasie in SQL für OLEDB wie Variablen deklariert oder eine Tabelle erstellen. Also ich denke, es gibt keinen Weg.
XMLAGG
ist nicht verfügbar für Sie, obwohl.Wenn Sie mit DB2 9.7 oder höher verwenden, können Sie LISTAGG-Funktion. Einen Blick hier haben:
http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0058709.html