【发布时间】:2013-05-10 03:32:05
【问题描述】:
在 SQL Server 2012 中,我想将 concat 5 列合并为 1,但在查询中它可以工作,但是当我放入视图时,它会给我一个类似
消息 174,第 15 级,状态 1,第 3 行
CONCAT 函数需要 2 个参数。
有什么问题,所以我可以解决它,因为 concat 是 concatenate 超过 1 列的一个很好的函数,因为如果它为空,它们会使其为空..
代码:
SELECT
'Aan ' + A.Name AS 'Naam',
{ fn CONCAT('T.a.v. ', C.Salutation + ' ', C.FirstName + ' ', C.MiddleName + ' ', C.LastName) } AS 'T.a.v.',
ISNULL(ISNULL(A.Address1_Line2, A.Address1_Line1),
C.Address1_Line2) AS 'Adres',
ISNULL(A.Address1_PostalCode + ' ' + A.Address1_City, A.Address2_PostalCode + ' ' + A.Address2_City) AS 'Woonplaats',
'heer' + ' ' + ISNULL(C.MiddleName + ' ', N'') + ISNULL(C.LastName, N'') AS 'Aanhef'
FROM
dbo.Account AS A
FULL OUTER JOIN
dbo.Contact AS C ON A.Name = C.AccountIdName
WHERE
(C.Salutation = 'Dhr.') AND (A.Name IS NOT NULL) AND (A.StatusCode = 1)
AND (ISNULL(C.StatusCode, 1) = 1) OR (C.Salutation = 'dhr.') AND (A.Name IS NOT NULL) AND (A.StatusCode = 1) AND (ISNULL(C.StatusCode, 1) = 1)
【问题讨论】:
-
你能贴出你正在使用的代码吗?
-
如果没有其他解决办法可以尝试
IsNull(columnName1, '') + IsNull(columnName2, '')...。 -
这是我之前尝试过的,但你必须看这里raresql.com/tag/concat-function这更快
标签: sql-server sql-server-2012 concat