Heim > Datenbank > MySQL-Tutorial > Wie kann ich berechnete Spalten in derselben PostgreSQL-Abfrage verwenden?

Wie kann ich berechnete Spalten in derselben PostgreSQL-Abfrage verwenden?

DDD
Freigeben: 2025-01-14 08:40:42
Original
167 Leute haben es durchsucht

How Can I Use Calculated Columns in the Same PostgreSQL Query?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage