Sql 合并表的两(或多)列
我有一张桌子Sql 合并表的两(或多)列,sql,postgresql,aggregate,coalesce,Sql,Postgresql,Aggregate,Coalesce,我有一张桌子 a b c 1 2 1 3 1 4 1 2 1 2 如果值相同,则应合并a列和c列。如果有不一样的,它总是这样,一个是空的 因此,结果应该是: a b 1 2 1 3 1 4 2 1 PostgreSQL中是否有可以应用的函数?您是否正在寻找类似的函数 SELECT COALESCE(c, a), b FROM your_table WHERE COALESCE(c, a) = a 根
a b c
1 2
1 3
1 4 1
2 1 2
如果值相同,则应合并a列和c列。如果有不一样的,它总是这样,一个是空的
因此,结果应该是:
a b
1 2
1 3
1 4
2 1
PostgreSQL中是否有可以应用的函数?您是否正在寻找类似的函数
SELECT COALESCE(c, a), b
FROM your_table
WHERE COALESCE(c, a) = a
根据你的描述: 如果值相同,则应合并a列和c列。如果 有不一样的,总是这样,一个是空的 你所需要的只是一个无条件的回答 假设“empty”的意思是
NULL
,而不是空字符串('
),在这种情况下,您需要添加:
COALESCE
适用于多个参数:
SELECT COALESCE(a, c, d, e, f, g) AS a, b FROM tbl;
也许您应该扩展您的案例,因为可以通过
从选项卡中选择a、b来获得所需的结果。
SELECT COALESCE(NULLIF(a, ''), c) AS a, b FROM tbl;
SELECT COALESCE(a, c, d, e, f, g) AS a, b FROM tbl;