Oracle Database Enterprise Edition 12c Veröffentlichung 12.1.0.2.0 Jemand, der mich mit meiner AnfrageOracle Datenbank concat Spalte
Oracle helfen könnte**TABLE A** **TABLE B** **TABLE usuarios**
RU RU DESCRIP iduser
================== ==================== =======================
| adm | | adm | hi | | 1 |
| adm | | adm | help | | 1 |
| adm | | adm | me | | 1 |
| usr | | urs | good day | | 1 |
| rhm | | rhm | s | | 1 |
Tabelle usuario ist Referenz >>Tabelle A und Tabelle A Referenz >>Tabelle B
diese meine Abfrage ist und das Ergebnis dieser
adm = ist hallo, hallo, hallo
SELECT case row_number()
over (partition by A.ru by B.descrip) WHEN 1
THEN A.RU
END as RU,
LISTAGG(B.descrip, ', ')
WITHIN GROUP (ORDER BY A.RU) "names"
FROM A
INNER JOIN usuarios on usuarios.iduser = A.iduser
LEFT JOIN B ON B.RU = A.RU
WHERE A.iduser = 1
GROUP BY A.RU, B.descrip
ORDER BY A.RU, B.descrip
und ich brauche dieses Ergebnis
RESULT
adm = hi help me
usr = good day
rhm = s
Ich habe Angst, Ihren Tisch B einige wichtige Informationen über die _order_ fehlt, die jeder Beschreibung Begriff nehmen sollte. –
Zusätzlich zu Tims Frage (wie bestimmen Sie, in welcher Reihenfolge die Werte zu verketten sind?) Gibt es mindestens zwei weitere wichtige Fragen. (1) Welche Version von Oracle haben Sie? Verschiedene Tools sind in verschiedenen Versionen verfügbar. Raten Sie nicht; Führen Sie 'select * from v $ version' aus und melden Sie sich mit der vollständigen (fünfteiligen) Version wie 12.1.0.2.0 zurück. (2) Ist es möglich, dass das Ergebnis der Verkettung sehr lang ist (über 4000 Bytes)? Welche Werkzeuge Sie benötigen, hängt stark davon ab. – mathguy
In Ihrem bestehenden Code ist die erste Sache, die herausragt (und das unerwartete Ergebnis verursacht), dass Sie nach 'ru' ** und nach **' descrip 'gruppieren. Sie sollten nicht nach 'descrip 'gruppieren. – mathguy