在 postgres 中使用 ORDER BY 在 CASE 中找不到列别名

问题描述

我有以下 sql 查询

SELECT *,DATE_PART('year',Now()) - DATE_PART('year',birthday) as age
        FROM "Users"
        ORDER BY 
            CASE
                WHEN true is true THEN age
                WHEN true is false THEN name
            END DESC

我收到错误

ERROR:  column "age" does not exist
LINE 5:                 WHEN true is true THEN age

我知道这个 sql 语句可能没有任何意义,但出于测试目的,我已将复杂查询转换为简单版本以更好地强调问题。所以,不要专注于查询的逻辑,而是关注我不能在 CASE 中使用别名列的问题。在那个查询中,我无法避免 CASE。谁能知道如何在 CASE WHEN 语句中使用别名列?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)