gpt4 book ai didi

postgresql - 从两列中的同一列中检索数据

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

我在 PostgreSQL 中有一个表,是这样的:

ID      NAME
450 China
525 Germany
658 Austria

我想查询 ID < 500 且同时 ID > 500 的每个名称,并使用

在两列中检索结果
array_to_string(array_agg(NAME),  ',  '). 

我需要以下结果:

column1 (ID < 500)      column2 (ID > 500)
China Germany, Austria

最佳答案

尝试使用条件聚合:

SELECT
STRING_AGG(CASE WHEN ID < 500 THEN NAME END, ', ') AS ID_lt_500,
STRING_AGG(CASE WHEN ID >= 500 THEN NAME END, ', ') AS ID_gt_500
FROM yourTable;

enter image description here

Demo

编辑:

如果您使用的 Postgres 版本不支持 STRING_AGG,那么按照您已经在做的:

SELECT
ARRAY_TO_STRING(ARRAY_AGG(CASE WHEN ID < 500 THEN NAME END), ', ') AS ID_lt_500,
ARRAY_TO_STRING(ARRAY_AGG(CASE WHEN ID >= 500 THEN NAME END), ', ') AS ID_gt_500
FROM yourTable;

Demo

关于postgresql - 从两列中的同一列中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54111755/

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