我在视图中有以下内容
c2.title + ' ' + c2.initials + ' ' + c2.surname AS referredTo
现在看来,如果其中一个值为null,那么referTo就是null。但是对于某些记录,标题,首字母或姓氏可能为空。处理此问题的最佳方法是,一个或多个值为null,它将仅返回具有非null值的字符串。因此,例如,如果title为null,它将只返回" initals surname",如果initials为null,它将返回" title surname",如果两者都为null,它将返回& #34;姓氏"等,以涵盖任何这些值为空。这可能是一个非常简单的答案,但我对SQL不熟悉,不得不像我一样学习。
感谢。
答案 0 :(得分:4)
根据评论中的建议,将空格放在ISNULL
:
SELECT ISNULL(Title + ' ', '') + ISNULL(Initials + ' ','') + ISNULL(Surname,'')
FROM YourTable;
这意味着如果Initials的值为NULL
,则不会在前面或者(可能)Title和Surname之间的两个空格处结束WhiteSpace。
答案 1 :(得分:3)
也许您可以使用ISNULL,请查看以下声明
RTRIM(
LTRIM(
ISNULL(c2.title, '') + ' ' +
ISNULL(c2.initials, '') + ' ' +
ISNULL(c2.surname, '')
)
) AS referredTo
答案 2 :(得分:0)
SET @FinalAnswer= ISNULL(@Col1, '') + ' ' +ISNULL(@Col2, '')
尝试上述方法。
答案 3 :(得分:-1)