我在蜂巢中有以下选择语句。它执行得很好。
在Hive中
select
COALESCE(product_name,CONCAT(CONCAT(CONCAT(TRIM(product_id),' -
'),trim(plan_code)),' - UNKNOWN')) as product_name
from table name;
我试图在POSTGRESQL中使用相同的select语句,这使我出错,提示“
查询执行失败
原因:
SQL错误[42883]:错误:函数concat(文本,未知)不存在
提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
在PostgreSQL中:
select
COALESCE(product_name,CONCAT(CONCAT(CONCAT(TRIM(product_id),' -
'),trim(plan_code)),' - UNKNOWN')) as product_name
from table name;
有人可以对此加以说明吗?
答案 0 :(得分:1)
尝试使用||
代替concat:
SELECT COALESCE(product_name,
(TRIM(product_id) || ' - ' || TRIM(plan_code) || ' - UNKNOWN')
) AS product_name
FROM tablename;
或仅将一个CONCAT设置为:
SELECT COALESCE(product_name,
CONCAT(TRIM(product_id)::text, ' - ', TRIM(plan_code)::text, ' - UNKNOWN')
) AS product_name
FROM tablename;
答案 1 :(得分:0)
您还可以考虑使用format函数:
SELECT coalesce(product_name, format('%s - %s - UNKNOWN', trim(product_id), trim(plan_code)))