在表foo中有两个字符串列a和b。
select a, b from foo返回值a和b。但是,a和b的串联不起作用。我试着:
select a || b from foo
and
select a||', '||b from foo
从注释更新:两列都是类型字符(2)。
在表foo中有两个字符串列a和b。
select a, b from foo返回值a和b。但是,a和b的串联不起作用。我试着:
select a || b from foo
and
select a||', '||b from foo
从注释更新:两列都是类型字符(2)。
当前回答
例如,如果有一个员工表,它由如下列组成:
employee_number,f_name,l_name,email_id,phone_number
如果我们想连接f_name + l_name作为名称。
SELECT employee_number,f_name ::TEXT ||','|| l_name::TEXT AS "NAME",email_id,phone_number,designation FROM EMPLOYEE;
其他回答
例如,如果有一个员工表,它由如下列组成:
employee_number,f_name,l_name,email_id,phone_number
如果我们想连接f_name + l_name作为名称。
SELECT employee_number,f_name ::TEXT ||','|| l_name::TEXT AS "NAME",email_id,phone_number,designation FROM EMPLOYEE;
因为我也被困在这个问题上,我想我应该分享最适合我的解决方案。我也认为这样更简单。
如果你使用大写表名。
SELECT CONCAT("firstName", ' ', "lastName") FROM "User"
如果使用小写表名
SELECT CONCAT(firstName, ' ', lastName) FROM user
就是这样!PGSQL在列声明中使用双引号,在字符串中使用单引号,这就像一个魅力。
CONCAT函数有时不适用于较旧的postgreSQL版本
看看我不使用CONCAT是如何解决问题的
u.first_name || ' ' || u.last_name as user,
或者你也可以用
"first_name" || ' ' || "last_name" as user,
在第二种情况下,我使用双引号first_name和last_name
希望这对你有用,谢谢
最好使用PostgreSQL中的CONCAT函数进行连接
select CONCAT(first_name,last_name) from person where pid = 136
如果使用column_a || ' ' || column_b对2列进行连接,如果column_a或column_b中的任何值为null,则查询将返回空值。 这可能不是在所有情况下都可取。所以不是这样
||
use
CONCAT
如果它们中的任何一个有值,它将返回相关的值
问题在于值中的空值;那么,连接对null无效。解决方法如下:
SELECT coalesce(a, '') || coalesce(b, '') FROM foo;