PostgreSQL 15.0如何将两列拼接为新列?
PostgreSQL合并两列为新列的解决方案
针对你的需求,只需在使用CONCAT函数时给拼接结果指定列别名,就能生成新列NewColumn。以下是两种可行的SQL写法:
方法1:使用CONCAT函数
SELECT id, CONCAT(Col1, ': ', Col2) AS NewColumn FROM your_table;
方法2:使用PostgreSQL字符串连接运算符||
SELECT id, Col1 || ': ' || Col2 AS NewColumn FROM your_table;
原表数据
id Col1 Col2 1 foo 10 2 bar 42 3 baz 14
查询结果
id NewColumn 1 foo: 10 2 bar: 42 3 baz: 14
补充说明
- 你之前没生成新列的原因是缺少
AS NewColumn这个别名定义,数据库默认会给拼接结果分配临时名称,加上别名后就会显示为指定的新列名。 - 如果
Col1或Col2可能存在NULL值,CONCAT会自动将NULL转为空字符串;而使用||运算符时,只要有一个值为NULL,整个结果就会变成NULL。这种情况可以用COALESCE处理,示例:SELECT id, CONCAT(COALESCE(Col1, ''), ': ', COALESCE(Col2, '')) AS NewColumn FROM your_table;
内容的提问来源于stack exchange,提问作者Muhammadayubjon Umarov
相关产品推荐
相关产品推荐

