Mit einem Alias Im Wenn-Teil der Case-Anweisung in Oracle-SQL
Ich habe versucht, zu suchen für eine Weile jetzt, wenn es möglich ist, einen alias zu verwenden oben in der select-Anweisung, wenn es verwendet werden kann, in einem Fall später in der case-Anweisung für Oracle SQL. Die meisten Ergebnisse, die ich finde sind über, wie man einen Alias auf Basis einer case-Anweisung, die nicht das gleiche problem. Ein kurzes Beispiel wäre so etwas wie:
Select TABLEA.SomeIDNumber AS "Id",
case ID
when 3
then 'foo'
else 'bar'
end AS "Results"
FROM OMEGA.TABLEA
Es ist wirklich nicht einfach in der SQL-Anweisung, die ich Schaffe (es ist tatsächlich in Anlehnung an eine frühere case-Anweisung und erfordert einige joins über verschiedene Tabellen, um die volle anderen pats der Abfrage, aber es würde nicht wirklich Sinn machen, ohne zu wissen, mehr von der Datenbank, die ich nicht teilen kann).
Ich Frage mich nur, ob es möglich ist, einen alias zu verwenden, die in einer case-Anweisung später in der select-Anweisung für Oracle (ich weiß, solche Dinge können getan werden, mit Zugang irgendwie "SQL"). Oder ist es besser für mich zu tun, einige Bearbeitung des wählen Sie, um es geschachtelte select-Anweisungen? Wahrscheinlich machbar, nur ein bisschen mehr Schmerz.
InformationsquelleAutor The God Emperor | 2013-07-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, Sie können nicht finden Sie den alias an anderer Stelle in der gleichen Ebene
select
andere als imorder by
Klausel, weil wenn Oracle weist es intern.Aus der Dokumentation (Hervorhebung Hinzugefügt):
Du brauchst eine innere Abfrage, so etwas wie:
Sollte eine follow-up, wenn der Fall ist der Aufruf einer anderen Tabelle verwendet, die als join-in das geschachtelte select -, haben Sie eine weitere Verknüpfung auf die Spitze wählen, oder können Sie rufen Sie die Informationen aus der Tabelle in das innere select? nie ganz fertig, ein wählen Sie, wie dies (schlecht gepflegte Datenbank hat, diese lächerlichen für mich :/ )
äh, nicht ganz sicher, ob ich Folgen. Sie direkt auf eine Tabelle in der inneren wählen Sie aus den äußeren, wie Sie gerade arbeiten mit einem Ergebnis-set, Sie müssten eine neue Verknüpfung in der äußeren Ebene. Aber normal würd ich versuchen auszusetzen, die Werte aus einer verknüpften Tabelle, die ich brauche in der äußeren auswählen, indem Sie in der select-Liste für die innere Abfrage, Sie haben nicht zu erscheinen in der select-Liste der äußeren Abfrage, aber es kann noch verwiesen werden. Es können Probleme auftreten, die verhindern, dass es davon abhängen würde die eigentliche Abfrage.
Ah nvm, habe ich es herausgefunden.
InformationsquelleAutor Alex Poole