亚马逊Redshift中Postgres 9.1的concat_ws等效项

时间:2019-06-21 17:38:21

标签: sql amazon-redshift concat

我有一个最初为pg9.1编写的查询,我正尝试将其修复为在redshift上使用,如下所示

select concat_ws(' | ', p.gb_id, p.aro_id, p.gb_name) c from (
select ca.p_id,
    avg(ca.ab) as ab
    from public.fca
        join temp_s_ids s on ca.s_id = s.s_id
    group by ca.p_id
) as x
    join public.dim_protein as p on x.protein_id = p.protein_id;";

我一直在尝试自己进行测试,但是由于它是由php会话创建的临时表创建的,因此我还没有任何运气。但是,我的猜测是concat_ws函数在redshift中无法正常工作。

2 个答案:

答案 0 :(得分:0)

我不认为红移等同。您将不得不自己动手。如果没有NULL,则可以使用串联运算符from mapboxgl.viz import * from mapboxgl.utils import * token = 'public token' viz = ChoroplethViz(data, access_token=token) viz.show()

||

如果您需要担心null(及其分隔符):

 SELECT p.gb_id || ' | ' || p.aro_id || ' | ' || p.gb_name c
 FROM...

也许可以简化,但是我相信它将成功。

答案 1 :(得分:0)

要处理NULL,您可以执行以下操作:

select trim('|' from
            coalesce('|' || p.gb_id) ||
            coalesce('|' || p.p.aro_id) ||
            coalesce('|' || p.gb_name)
           )
from . . .