Heim > Datenbank > MySQL-Tutorial > Wie kann ich eindeutige Werte sicherstellen, wenn ich die LISTAGG-Funktion von Oracle verwende?

Wie kann ich eindeutige Werte sicherstellen, wenn ich die LISTAGG-Funktion von Oracle verwende?

Mary-Kate Olsen
Freigeben: 2025-01-19 18:26:09
Original
163 Leute haben es durchsucht

How Can I Ensure Distinct Values When Using Oracle's LISTAGG Function?

Oracle LISTAGG: Strings mit eindeutigen Werten generieren

Oracles Funktion LISTAGG ist für die Verkettung von Spaltenwerten in einer einzigen Zeichenfolge von unschätzbarem Wert. Um jedoch nur eindeutige Werte innerhalb der aggregierten Zeichenfolge zu erhalten, ist ein spezifischer Ansatz erforderlich. Dieser Leitfaden demonstriert effiziente Methoden und vermeidet die Notwendigkeit benutzerdefinierter Funktionen oder gespeicherter Prozeduren.

Oracle 19c und höher: DISTINCT direkt nutzen

Für Oracle 19c und nachfolgende Versionen kann das Schlüsselwort DISTINCT nahtlos in die Funktion LISTAGG selbst integriert werden:

<code class="language-sql">SELECT LISTAGG(DISTINCT the_column, ',') WITHIN GROUP (ORDER BY the_column)
FROM the_table;</code>
Nach dem Login kopieren

Oracle 18c und früher: Verwenden einer Unterabfrage

In älteren Oracle-Versionen (18c und früher) ist eine Unterabfrage erforderlich, um vor der Aggregation nach eindeutigen Werten zu filtern:

<code class="language-sql">SELECT LISTAGG(the_column, ',') WITHIN GROUP (ORDER BY the_column)
FROM (
    SELECT DISTINCT the_column
    FROM the_table
) t;</code>
Nach dem Login kopieren

Einbinden mehrerer Spalten

Die folgende Abfrage erweitert die Funktionalität um mehrere Spalten und demonstriert so eine robuste Methode für komplexere Szenarien:

<code class="language-sql">SELECT DISTINCT col1, listagg(col2, ',') OVER (PARTITION BY col1 ORDER BY col2) AS col2_list
FROM table_name
WHERE RN = 1
GROUP BY col1
ORDER BY col1;</code>
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass Sie mithilfe des Schlüsselworts DISTINCT (19c und höher) oder einer Unterabfrage (18c und niedriger) effektiv LISTAGG-Ergebnisse generieren können, die nur eindeutige Werte enthalten. Diese Techniken bieten Flexibilität über verschiedene Oracle-Versionen hinweg und erleichtern bei Bedarf die Einbindung mehrerer Spalten.

Das obige ist der detaillierte Inhalt vonWie kann ich eindeutige Werte sicherstellen, wenn ich die LISTAGG-Funktion von Oracle verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage