gpt4 book ai didi

sql - 如何在 Postgres 中使用冗余别名

转载 作者:行者123 更新时间:2023-11-29 11:56:08 25 4
gpt4 key购买 nike

我正在运行一个查询,其中包含两个具有类似名称索引“time”的表的连接。我想返回具有相同命名索引“time”的结果。

SELECT "tbl1"."a"                       "a", 
"tbl1"."b" "b",
"tbl2"."c" "c",
COALESCE("tbl"."time", "tb2"."time") "time"
FROM "tbl1"
FULL OUTER JOIN "tbl2"
ON "tbl1"."timestamp" =
"tbl2"."timestamp"
ORDER BY "time"

此查询返回一个错误,指出“时间”是多余的(在 ORDER BY 中)。

如果我将别名“时间”更改为其他内容 - 它会起作用。但我确实希望该查询返回“时间”

如果我将 ORDER BY 更改为

ORDER BY COALESCE("tbl"."time", "tb2"."time")

它也可以工作,但据我了解,它会搜索 None 两次并延长执行时间(不是吗?)。

最佳答案

您可以使用位置列编号代替名称:


SELECT "tbl1"."a"                       "a", 
"tbl1"."b" "b",
"tbl2"."c" "c",
COALESCE("tbl"."time", "tb2"."time") "time"
FROM "tbl1"
FULL OUTER JOIN "tbl2"
ON "tbl1"."timestamp" =
"tbl2"."timestamp"
ORDER BY 4;

这也适用于GROUP BY

关于sql - 如何在 Postgres 中使用冗余别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53519436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com