フィールドに何かがある場合にのみ文字列に入れる必要がある複数のフィールドがあり、その上、フィールドがnullの場合はフィールド間にコンマを入れたくありません。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
. これらのフィールドが実際には null であり、空ではないことを確認したので、それは問題ではありません。