PostgreSQL-Berechnete Spalten: Ein praktischer Leitfaden
Das Arbeiten mit berechneten Spalten innerhalb einer einzelnen PostgreSQL-Abfrage kann manchmal eine Herausforderung darstellen. Im Gegensatz zu einigen anderen SQL-Datenbanken erfordert die Verarbeitung berechneter Spalten in PostgreSQL einen bestimmten Ansatz.
Behebung von SQL-Syntax-Inkompatibilitäten
Der folgende SQL-Code, der in vielen anderen Datenbanksystemen funktioniert, schlägt in PostgreSQL fehl:
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2, (total_1 + total_2) AS total_3 FROM data;</code>
PostgreSQL meldet, dass total_1
und total_2
undefiniert sind. Dies liegt daran, dass PostgreSQL berechnete Spalten als Aliase behandelt, die für die Ausführung der Abfrage flüchtig sind.
Effektive Lösung: Nutzung abgeleiteter Tabellen
Die Lösung besteht darin, eine abgeleitete Tabelle (oder Unterabfrage) zu verwenden, um diese Einschränkung zu überwinden:
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, total_1 + total_2 AS total_3 FROM ( SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2 FROM data ) AS t;</code>
Durch die Verschachtelung der anfänglichen SELECT
-Anweisung in einer abgeleiteten Tabelle (mit dem Alias t
) kann die äußere Abfrage dann erfolgreich auf die Aliase total_1
und total_2
verweisen. Diese Methode verursacht keinen Leistungsaufwand.
Das obige ist der detaillierte Inhalt vonWie kann ich berechnete Spalten in derselben PostgreSQL-Abfrage verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!