带有PostgreSQL的Concat文本字段

时间:2014-12-11 16:24:50

标签: postgresql concatenation

此查询有什么问题?

SELECT gid, (tex1||' '||tex2) AS ident FROM my_table ;

my_table的结构如下:

gid serial NOT NULL
tex1 CHARACTER VARYING(254)
tex2 CHARACTER VARYING(254)

my_table的内容是:

gid | tex1   | tex2
----+--------+--------
1   | A      | dog
2   | Two    | birds
3   | More   | things

查询结果为:

gid | ident
----+-------
1   |
2   |
3   |

我从没想过要用这么简单的查询来解决问题...

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您确定所提供的样本数据是否正确?

SELECT gid, (tex1||' '||tex2) IS NULL FROM my_table;的输出是什么?

似乎tex1tex2(或两者)都是NULL,因此连接也会产生NULL。在这种情况下,使用COALESCE提供非空的默认值。

SELECT
  gid,
  (COALESCE(tex1, '') || ' ' || COALESCE(tex2, '')) AS ident
FROM
  my_table;