开发者

How to join attributes in sql select statement?

开发者 https://www.devze.com 2022-12-11 11:16 出处:网络
I want to join few attributes in select statement as one for example select id, (name + \' \' + surname + \' \' + age) as info from users

I want to join few attributes in select statement as one for example

select id, (name + ' ' + surname + ' ' + age) as info from users

this d开发者_JAVA技巧oesn't work, how to do it? I'm using postgreSQL.


Postgres uses || to concatenate strings; your query needs to be:

select id, (name || ' ' || surname || ' ' || age) as info from users

It should be the key just above the Enter key on a full keyboard, but on mine it's not a sold line - there's a break in the middle of it. You have to hold the Shift key to get the character (called a pipe, btw).


I believe the ANSI standard concatenation operator is: ||

SELECT id, name ||' ' || surname || ' ' || age  AS info FROM users


It perfectly might be dependent of the database I would take a look for a concatenation function for the database you are running the select for.

Example. Mysql: CONCAT(name, surname, age).


You may need to cast the fields to a common type before concatenating. In T-SQL for example this would read.

Select id, Cast(name as varchar(50)) + ' ' + Cast(surname as varchar(50)) + ' ' + 
     Cast(age as varchar(3)) As info From Users


|| is used for this purpose.

Use it like select name ||' ' ||surname ||' ' ||age as info from users


If you're using mysql or oracle then try CONCAT function:

SELECT id, CONCAT(name, ' ', surname, ' ', age) as info FROM users


That should work as is, but in general it is better not to do too much concatenation sql side if you can help it; rather return all the columns and concat them on the other end.

What are the data types you are using? You may need to CAST / CONVERT into (n)varchar


Make sure your data types are similar and convert any datatypes to string as necessary:

select id, (name + ' ' + surname + ' ' + convert(varchar(3),age)) as info from users


Works fine in most databases I know, although you probably have to CAST the age field to be TEXT. The exact method for doing this depends on the database you're using, which you did not specify.

0

精彩评论

暂无评论...
验证码 换一张
取 消