Es ist ein Weg, um ein berechnetes Feld in der where-Klausel?
Es ist ein Weg, um ein berechnetes Feld in der where-Klausel ?
Ich will etwas tun, wie
SELECT a, b, a+b as TOTAL FROM (
select 7 as a, 8 as b FROM DUAL
UNION ALL
select 8 as a, 8 as b FROM DUAL
UNION ALL
select 0 as a, 0 as b FROM DUAL
)
WHERE TOTAL <> 0
;
aber bekomme ich ORA-00904: "GESAMT": Ungültiger Bezeichner.
So, ich habe mit
SELECT a, b, a+b as TOTAL FROM (
select 7 as a, 8 as b FROM DUAL
UNION ALL
select 8 as a, 8 as b FROM DUAL
UNION ALL
select 0 as a, 0 as b FROM DUAL
)
WHERE a+b <> 0
;
InformationsquelleAutor Luc M | 2010-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Logisch, die
select
- Klausel ist eines der letzten Teile einer Abfrage ausgewertet, so dass die Aliase und abgeleitete Spalten sind nicht verfügbar. (Außerorder by
, die logisch passiert.Verwenden Sie eine abgeleitete Tabelle ist Weg, um dieses:
Ich habe versucht dies in einer Gespeicherten Prozedur und der oben genannten syntax würde nicht funktionieren, wenn ich alias die abgeleitete Tabelle als auch.
interessant. Hast du versucht in Oracle? Wenn ich mich richtig erinnere, SQL-Server immer erforderlich, abgeleitete Tabellen alias.
OP wurde gefragt, über Oracle das nicht braucht, der alias. Ich bin froh, diese Antwort war in der Lage, Ihnen zu helfen, auch wenn es für eine andere Plattform.
Ah - ist nur aufgefallen, das Oracle-Fehlermeldung, und die tags erröten. Immer noch, es wies mich in die richtige Richtung, so upvote 🙂
InformationsquelleAutor Shannon Severance