首頁 > 資料庫 > mysql教程 > 如何在同一個 PostgreSQL 查詢中使用計算列?

如何在同一個 PostgreSQL 查詢中使用計算列?

DDD
發布: 2025-01-14 08:40:42
原創
167 人瀏覽過

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

PostgreSQL 計算列:實用指南

在單一 PostgreSQL 查詢中使用計算列有時會帶來挑戰。 與其他一些 SQL 資料庫不同,PostgreSQL 對計算列的處理需要特定的方法。

解決 SQL 語法不相容問題

以下 SQL 程式碼在許多其他資料庫系統中都可以使用,但在 PostgreSQL 中將失敗:

<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 將報表 total_1total_2 未定義。這是因為 PostgreSQL 將計算列視為別名,對於查詢的執行來說是短暫的。

有效的解:利用衍生表

解決方案涉及使用派生表(或子查詢)來克服此限制:

<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>
登入後複製

將初始 SELECT 語句嵌套在派生表(別名為 t)中,外部查詢可以成功引用 total_1total_2 別名。 此方法不會帶來任何效能開銷。

以上是如何在同一個 PostgreSQL 查詢中使用計算列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板