我想创建一个将用户的全名串联起来的视图。如果用户具有扩展名,它将使用全名将其连接起来。
例如:
约翰·梅·布朗(Fname,Mname,Lname)
带有扩展名
小约翰·梅·布朗(Fname,Mname,Lname,ExtName)
我的代码:
Create view viewforum (
SELECT A.*, CONCAT(B.Fname," ",B.Mname," ",B.Lname," ",B.ExtName) AS Fullname
FROM forum_table A INNER JOIN user_table B
WHERE A.user_id = B.user_id
);
输出:
Fullname列下的所有数据是NULL
因为某些用户信息上没有扩展名。因此输出为NULL
。
我该如何作条件?
为了消除以下问题,要稍微复杂一点nulls
:
Create view viewforum (SELECT A.*,
CONCAT(
B.Fname,
" ",
COALESCE(B.Mname, ""),
" ",
B.Lname," ",
COALESCE(B.ExtName,"")
) AS Fullname FROM forum_table A INNER JOIN user_table B WHERE A.user_id = B.user_id);
COALESCE
将从值列表中选择第一个非空值。所以COALESCE(B.ExtName, "")
如果B.ExtName
是则将导致一个空字符串Null
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句