Ich habe eine Abfrage so etwas wie diese:deutlicher listagg in oracle
select tab1.id,
(
select listagg(tab2.surna||' '||tab2.name||':'||tab2.addr||' '||tab2.numb,', ') within group(order by tab2.name)
from tab2
where tab1.id=tab2.id2id /*join tab1 with tab2 */
)as address
from tab1
und das Ergebnis ist wie:
name_surname1: Adr 1, name_surname1: Adr 2, name_surname2: Adr 3
aber das exptected Ergebnis wäre so etwas wie:
name_surname1: (Adr 1, Adr 2), n ame_surname2: (addr 3)
Wie kann ich dies implementieren, um doppelte Datensätze in den Anzeigenamen zu vermeiden?
Dank
Vielen Dank für Ihre Antwort, aber jetzt tab1.id ist ein ungültiger Bezeichner in diesem Tab1.id = tab2.id2id clause.Ich möchte tab1.id in der Nähe von final_res Attribut, aber das ist nicht erlaubt .. Irgendwelche Idee? – Anastasis
@Anastasis - Wenn Sie möchten, dass Freiwillige Ihnen bei Ihrer spezifischen Tischordnung helfen, müssen Sie in Ihrem Beitrag Beispieleingabetabellen angeben. – mathguy
Ela @Anastasis, wie @mathguy erwähnt, du hilfst uns nicht, dir zu helfen ;-), aber die Idee wäre, deine ursprüngliche Anfrage ein wenig zu ändern und 'id2id' in die Abfrage einzutragen, die in der Lösung gegeben ist Benenne es 'tab3') und verwende dann join' tab1, tab3 wo tab1.id = tab3.id (+) ' – Plirkee