Lassen Sie mich darauf hinweisen, dass zuerst meine Frage auf diese Frage sehr, sehr nahe sein wird: map-column-data-to-a-value-oracleOracle - Karte Spaltendaten auf einen Wert
Bitte schnell, dass man zuerst lesen.
Jetzt in meinem Fall brauche ich genau das gleiche, aber nicht als primäre Abfrage. Stattdessen brauche ich die Informationen als einen Teil meiner Abfrage.
Ich habe diese Tabelle:
someId | someValue | dataType
1 | 500 | 1
2 | someValue | 2
Und ich weiß, dass datatype "1" bedeutet "Integer". Ich kenne auch die Bedeutung der anderen Werte in der Spalte dataType.
Deshalb möchte ich alle Einträge in der Tabelle wählen, sondern ihre Datentypen als ihre Menschen lesbare Werte haben, anstatt ihre Zahlen:
Ergebnisse:
1, 500, Integer
2, someString, String
Der Versuch, die Lösung der Frage anzuwenden I verbunden ist, habe ich eine Unterabfrage wie
SELECT
someId,
someValue,
(
SELECT CASE
WHEN dataType = 1 THEN 'INTEGER'
WHEN dataType = 2 THEN 'FLOAT'
WHEN dataType = 3 THEN 'TEXT'
ELSE 'DATE'
END
myTable
) as myDataType
ich werde eine Unterabfrage erhalten, die mehr als 1 Ergebnis und Oracle gibt wird sich beschweren.
Da ich direkt über SQL auf die DB zugreife, brauche ich eine "reine SQL" -Lösung. Ansonsten könnte ich den Wert einfach durch ein Mapping analysieren, in PHP. Aber das ist hier nicht möglich. Ich mache ein paar Anfragen bei einer Datenbank, um Informationen über die Daten und die Struktur zu sammeln, von denen wir nichts wissen. Also nur SQL ist verfügbar.
Arbeiten wie ein Charme. Vielen Dank! – Worp