Ich habe eine Tabelle mit allen meinen Daten. Ich habe versucht, Joins, Unterabfragen und Gewerkschaften, aber keine gibt mir das gewünschte Ergebnis. Ich betreibe Oracle 12g.Mehrere select Abfragen in der gleichen Tabelle in Oracle
Dies ist ein Beispieltabelle:
FILENAME | VALUE | RAW
AA | XX | ZZ
AA | YY | WW
DD | GG | II
DD | HH | JJ
Die aktuelle SQL-Anweisung, die ich benutze, ist:
SELECT FILENAME, VALUE VALUE1 FROM TABLE WHERE FILENAME='AA';
SELECT FILENAME, VALUE VALUE2 FROM TABLE WHERE FILENAME='DD';
Und ich bekomme folgendes Ergebnis:
FILENAME | VALUE1
AA | XX
AA | YY
und
FILENAME | VALUE2
DD | GG
DD | HH
aber ich brauche das Ergebnis zu sein:
FILENAME | VALUE1 | VALUE2
AA | XX | GG
AA | YY | HH
Es spielt keine Rolle, wenn AA oder DD im Dateinamen ist. Es gibt keine Fremdschlüssel oder eindeutige Werte, die ich einfach INNER JOIN machen kann. Ich kann der Tabelle keine neuen Spalten hinzufügen. Ich hatte gehofft, meine Daten zu sortieren und dann Oracle's ROWNUM als eine temporäre Spalte zu verwenden, die ich dann verwenden könnte, um einen SELF JOIN zu machen, aber Oracle lässt mich nicht.
Beispiel:
SELECT L.FILENAME, L.VALUE VALUE1, R.VALUE VALUE2
FROM TABLE L JOIN TABLE R
ON (L.ROWNUM=R.ROWNUM)
WHERE L.FILENAME IN ('AA','DD');
Jede Hilfe ist willkommen.
In der Unterabfrage können Sie die 'row_number' generieren und sie dann verwenden, um sie außerhalb der Unterabfrage zu verbinden. Row_number ist eine Pseudospalte und Sie können es nicht direkt verwenden –