Oracle SQL - Konvertieren N Zeilen' Spalte Werte um N Spalten in Zeile 1

Den trick mit dieser im Vergleich zu den anderen Fragen (z.B. "Oracle konvertieren von Zeilen in Spalten") ist, dass meine Spalte Werte sind beliebige Zeichenfolgen, sondern als etwas, das ich benutzen kann mit decode. Nehmen Sie diese Abfrage:

Beschreibung Tabelle hier Karten die Namen von Personen auf Beschreibungen, aber jede person kann mehrere Beschreibungen wie z.B. "trägt einen Hut" oder "hoch".

Select firstName, lastName, 
(Select description from descriptions --This can return any number of rows (0 or more)
 where description.firstName = people.firstName
 and description.lastName = people.lastName
 and rownum <= 3)
from people
where age >= 25;

Möchte ich eine Ausgabe wie diese:

FIRSTNAME LASTNAME DESCRIPTION1 DESCRIPTION2 DESCRIPTION3
Jeremy    Smith    Tall         Confused        (null)
Anne      Smith    (Null)       (Null)          (Null)
Mark      Davis    Short        Smart           Strong

Im Falle von weniger als 3 Beschreibungen, ich will null-Werte gibt. Im Falle von mehr als 3 Beschreibungen, ich will nur lassen Sie sich.

Ich bin mit Oracle 11.1. Kann das sein getan effizient?

InformationsquelleAutor Jeremy | 2012-02-16
Schreibe einen Kommentar