Heim >Datenbank >MySQL-Tutorial >Wie kann ich berechnete Spalten in PostgreSQL-Abfragen fehlerfrei verwenden?
Berechnete PostgreSQL-Spalten: Problemumgehungen für Einschränkungen
PostgreSQLs Umgang mit berechneten Spalten unterscheidet sich von anderen Datenbanksystemen. Der direkte Verweis auf berechnete Spalten später in derselben Abfrage wird nicht unterstützt. Diese Einschränkung wird durch das folgende Beispiel veranschaulicht, das einen Fehler erzeugt:
<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 -- Error: total_1 and total_2 are not found FROM data;</code>
Der Fehler tritt auf, weil PostgreSQL die Abfrage Zeile für Zeile verarbeitet. total_1
und total_2
sind für nachfolgende Berechnungen innerhalb derselben SELECT
-Anweisung nicht verfügbar.
Die Lösung besteht darin, eine Unterabfrage (abgeleitete Tabelle) zu verwenden, um die anfänglichen Berechnungen zu kapseln. Dadurch können die Ergebnisse in der äußeren Abfrage referenziert werden:
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, total_1, total_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 Berechnungen von total_1
und total_2
innerhalb der inneren SELECT
-Anweisung (alias t
) werden sie für weitere Berechnungen in der äußeren SELECT
-Anweisung zugänglich und verwendbar. Diese Methode bietet eine praktische und effiziente Möglichkeit, mit berechneten Spalten in PostgreSQL ohne nennenswerten Leistungsaufwand zu arbeiten.
Das obige ist der detaillierte Inhalt vonWie kann ich berechnete Spalten in PostgreSQL-Abfragen fehlerfrei verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!