Mit alias in der Abfrage und Verwendung
Habe ich Zweifel und Frage zu alias in sql. Wenn ich den alias verwenden möchten, die in derselben Abfrage kann ich es nutzen. ZB:
Betrachten Sie die Tabelle name xyz mit Spalte a und b
select (a/b) as temp , temp/5 from xyz
Ist das möglich, in irgendeiner Weise ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du redest, geben einen Bezeichner in einem Ausdruck in einer Abfrage, und dann die Wiederverwendung, die identifier, die in anderen teilen der Abfrage?
Dass ist es nicht möglich, Microsoft SQL Server, die fast alle meine SQL-Erfahrung ist beschränkt. Aber Sie können jedoch Folgendes tun.
Offensichtlich, dass Beispiel ist nicht besonders hilfreich, aber wenn Sie wurden mit der expression in einigen Orten kann es jedoch nützlich sein. Es kann in handliches kommen, wenn die Ausdrücke sind lang und Sie gruppieren möchten Sie auch, weil die GROUP BY-Klausel erfordert, dass Sie, re-state-Ausdruck.
In MSSQL haben Sie auch die Möglichkeit, zum erstellen von berechneten Spalten, die in der Tabelle angegebenen schema, und nicht in der Abfrage.
Können Sie Oracle
with
Aussage zu. Es gibt ähnliche Aussagen in anderen DBs zu. Hier ist die, die wir verwenden für Oracle.Dieser hat einen performance-Vorteil, insbesondere wenn Sie eine komplexe Abfragen mit mehreren verschachtelten Abfragen, weil die
MIT
- Anweisung wird nur einmal ausgewertet und in späteren Aussagen.Nicht möglich, in der gleichen
SELECT
Klausel, vorausgesetzt, Ihre SQL-Produkt ist konform mit den entry-level-Standard SQL-92.Ausdrücke (und Ihre Korrelation Namen) in der
SELECT
- Klausel zustande kommen, "alles auf einmal"; es gibt kein Links-nach-rechts Auswertung, die Sie scheinen zu hoffen.Als pro @Josh Einsteins Antwort hier können Sie eine abgeleitete Tabelle verwenden, da ein workaround (hoffentlich mit mote aussagekräftigen Namen als 'temp' und die Bereitstellung einer für die
temp/5
Ausdruck im Sinn haben, die person, die Erben code).Beachten Sie, dass code, den Sie geschrieben würde der Arbeit auf der MS Access-Database-Engine (und weisen eine sinnlose Korrelation Namen wie
Expr1
auf Ihre zweite Ausdruck), aber dann wieder es ist nicht eine echte SQL-Produkt.Seine mögliche ich denke:
Dies ist jetzt in Amazon Redshift
E. g.
Ref:
https://aws.amazon.com/about-aws/whats-new/2018/08/amazon-redshift-announces-support-for-lateral-column-alias-reference/
Finden Sie vielleicht W3Schools "SQL-Alias" eine gute Hilfe.
Hier ist ein Beispiel aus Ihrer tutorial:
Bezüglich der Verwendung der Alias-weiter in der Abfrage, je nach Datenbank, die Sie verwenden könnte es möglich sein.