Sql 作为字段-连接可能为空的值
我有以下的T-SQL查询Sql 作为字段-连接可能为空的值,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我有以下的T-SQL查询 SELECT Site.Address1 + CHAR(13) + Site.Address2 + CHAR(13) + Site.Address3 + CHAR(13) + Site.Town + CHAR(13) + Site.eCounty AS SiteAddress FROM Site 如果构成Site address的Site.AddressX字段中有任何字段是NULL,则Site address本
SELECT
Site.Address1 + CHAR(13) + Site.Address2 + CHAR(13) +
Site.Address3 + CHAR(13) + Site.Town + CHAR(13) +
Site.eCounty AS SiteAddress
FROM Site
如果构成Site address
的Site.AddressX
字段中有任何字段是NULL
,则Site address
本身就是NULL
。我想要一个Site.AddressX
字段,如果它是NULL
,那么它后面的新行字符将被忽略
我曾尝试为单个字段及其新行字符添加CASE
语句,但未能使其正常工作
SELECT
(CASE WHEN (Site.Address1 IS NULL) THEN '' ELSE Site.Address1 + CHAR(10)) +
Site.Address2 + CHAR(13) +
Site.Address3 + CHAR(13) + Site.Town + CHAR(13) +
Site.eCounty AS SiteAddress
FROM Site
我该怎么做呢?试试这个:
SELECT
COALESCE([Site].Address1 + CHAR(13), '') +
COALESCE([Site].Address2 + CHAR(13), '') +
COALESCE([Site].Address3 + CHAR(13), '') +
COALESCE([Site].Town + CHAR(13), '') +
[Site].eCounty AS SiteAddress
FROM [Site]
试试这个
SELECT
CASE WHEN Site.Address1 IS NULL THEN ''
ELSE Site.Address1 + CHAR(10) +
Site.Address2 + CHAR(13) +
Site.Address3 + CHAR(13) + Site.Town + CHAR(13) +
Site.eCounty END AS SiteAddress
FROM SITE Site
COALESCE(Site.Address1+CHAR(13),“”)+等等…我实际上开始使用
ISNULL()
编写一个非常类似的解决方案,但在快速阅读了COALESCE()
之后,我转而使用它。