Я читаю таблицу DB2, где данные хранятся как
user group
----- ------
user1 groupa
user1 groupb
user1 groupc
user2 groupc
user3 groupc
Я хочу, чтобы для каждого пользователя возвращалась одна строка.
user1 groupa, groupb, groupc
мне сказали другие формы, правильный способ сделать это ниже
SELECT VRAVW900_USER, SUBSTR(xmlserialize(xmlagg(xmltext(CONCAT( ', ',VRAVW900_Group))) as VARCHAR(1024)), 3) AS Groups
FROM VRADB2.VRAVW900
GROUP BY VRAVW900_USER
Это не работает для меня, и я получаю ошибку:
DB2 SQL Error: SQLCODE=-199, SQLSTATE=42601, SQLERRMC=VARCHAR;CLOB CHAR CHARACTER BLOB BINARY DBCLOB, DRIVER=3.64.133
at com.ibm.db2.jcc.am.bd.a(bd.java:679)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:127)
at com.ibm.db2.jcc.am.io.c(io.java:2706)
at com.ibm.db2.jcc.am.io.d(io.java:2694)
at com.ibm.db2.jcc.am.io.a(io.java:2143)
at com.ibm.db2.jcc.am.io.a(io.java:2119)
at com.ibm.db2.jcc.t4.ab.h(ab.java:136)
at com.ibm.db2.jcc.t4.ab.b(ab.java:41)
at com.ibm.db2.jcc.t4.p.a(p.java:32)
at com.ibm.db2.jcc.t4.qb.i(qb.java:135)
at com.ibm.db2.jcc.am.io.gb(io.java:2112)
at com.ibm.db2.jcc.am.io.a(io.java:3191)
at com.ibm.db2.jcc.am.io.a(io.java:686)
at com.ibm.db2.jcc.am.io.executeQuery(io.java:669)
at com.service_now.monitor.jdbc.JDBCRowSet.query(JDBCRowSet.java:64)
at com.service_now.mid.probe.JDBCProbe.doSelect(JDBCProbe.java:312)
at com.service_now.mid.probe.JDBCProbe.doQuery(JDBCProbe.java:198)
at com.service_now.mid.probe.JDBCProbe.probe(JDBCProbe.java:123)
at com.service_now.mid.probe.AProbe.process(AProbe.java:84)
at com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:125)
at com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
я бегуэто из ServiceNow, DB2 Версия 11