我有多个字段,仅当字段中有内容时才需要将其放入字符串中,最重要的是,如果字段为空,我不希望字段之间的逗号。我尝试使用 case when 但显然做错了什么,并希望在以下方面提供一些帮助:
USE newCityCollection
UPDATE PropertyInformationDump
SET RegistryAdd = (CASE
WHEN b.OCAREOF IS NULL THEN Isnull(b.OCAREOF, '')
ELSE b.OCAREOF + ' ,'
END) + (CASE
WHEN b.O1STADD IS NULL THEN Isnull(b.O1STADD, '')
ELSE b.O1STADD + ' ,'
END) + (CASE
WHEN b.O2NDADD IS NULL THEN Isnull(b.O2NDADD, '')
ELSE b.O2NDADD + ' ,'
END) + (CASE
WHEN b.OSTNAME IS NULL THEN Isnull(b.OSTNAME, '')
ELSE b.OSTNAME + ' ,'
END) + (CASE
WHEN b.OCITYST IS NULL THEN Isnull(b.OCITYST, '')
ELSE b.OCITYST + ' ,'
END) + (CASE
WHEN b.OZIP IS NULL THEN Isnull(b.OZIP, '')
ELSE b.OZIP + ' ,'
END)
FROM dbo.vw_BRT b
WHERE BRTNumber = b.PARCEL
当我在某个领域执行该操作时,我会感到无助,并且不确定为什么这可能是对CASE
工作原理的根本误解。我确实确保这些字段实际上是空的,而不是空的,所以这不是问题。