此查询有什么问题?
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 |
我从没想过要用这么简单的查询来解决问题...
感谢您的帮助!
答案 0 :(得分:1)
您确定所提供的样本数据是否正确?
SELECT gid, (tex1||' '||tex2) IS NULL FROM my_table;
的输出是什么?
似乎tex1
或tex2
(或两者)都是NULL
,因此连接也会产生NULL。在这种情况下,使用COALESCE提供非空的默认值。
SELECT
gid,
(COALESCE(tex1, '') || ' ' || COALESCE(tex2, '')) AS ident
FROM
my_table;