首页 > 数据库 > 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板