我希望能够做这样的事情
SELECT `first_name` + " " + `last_name` as `whole_name` FROM `users`
所以基本上我得到了一列返回的whole_name
,它是用(空格)连接起来的first_name
和last_name
。
我如何在SQL中,或者更具体地说,在MySQL中做到这一点?
发布于 2010-07-15 08:27:38
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws
SELECT CONCAT_WS(" ", `first_name`, `last_name`) AS `whole_name` FROM `users`
发布于 2018-02-02 14:02:07
您可以使用查询来获得相同的结果:
SELECT CONCAT(FirstName , ' ' , MiddleName , ' ' , Lastname) AS Name FROM TableName;
注意:如果所有列都有一些值,则此查询将返回;如果任何人为null或空,则此查询将为所有列返回null,这意味着名称将返回"NULL“
为了避免上述情况,我们可以使用IsNull
关键字来获得相同的结果。
SELECT Concat(Ifnull(FirstName,' ') ,' ', Ifnull(MiddleName,' '),' ', Ifnull(Lastname,' ')) FROM TableName;
如果任何人包含空值,‘’(空格)将与下一个值相加。
发布于 2016-10-25 17:14:26
当您有三列时: first_name、last_name、mid_name:
SELECT CASE
WHEN mid_name IS NULL OR TRIM(mid_name) ='' THEN
CONCAT_WS( " ", first_name, last_name )
ELSE
CONCAT_WS( " ", first_name, mid_name, last_name )
END
FROM USER;
https://stackoverflow.com/questions/3251600
复制相似问题