我有一个table
,我正在运行query
并从表格中获取全名
SELECT CONCAT(f_name , " - ", l_name ) as fullname FROM user
它很好但是我在l_name
中没有值,默认为null
它没有给f_name
而是给了我NULL
答案 0 :(得分:3)
您可以使用CONCAT_WS:
SELECT CONCAT_WS(' - ', f_name, l_name) as fullname FROM user
如果值为null,concat将返回null,concat_ws将只跳过空值。
答案 1 :(得分:1)
答案 2 :(得分:1)
使用CASE
表达式
检查l_name
列是否为空且仅包含空格
如果是这样,请避免添加-
字符和l_name
以及f_name
否则,请-
添加l_name
和f_name
。
<强>查询强>
select concat(f_name,(
case when l_name is null or length(trim(l_name)) = 0 then ''
else concat('-', l_name) end)
) as fullname
from user;
答案 3 :(得分:1)
试试这个
SELECT concat(f_name , if(l_name is null,'',concat("-", l_name) ) ) fullname
FROM user