У меня есть следующий SQL для форматирования адреса США в каждой строке для почтового адреса, но он довольно уродлив. Есть ли лучший способ решить эту проблему или она должна быть такой уродливой? Кроме того, проблема с этим кодом заключается в том, что он всегда заканчивается добавочной новой строкой в конце.Форматирование условного почтового адреса SQL Server
declare @NL varchar(2);
set @NL = char(13) + char(10);
select
case when rtrim(coalesce(AttentionLine,'')) != '' then rtrim(AttentionLine) + @NL else '' end
+ case when rtrim(coalesce(Recipient,'')) != '' then rtrim(Recipient) + @NL else '' end
+ case when rtrim(coalesce(AddlAddrLine,'')) != '' then rtrim(AddlAddrLine) + @NL else '' end
+ case when rtrim(coalesce(DeliveryAddr,'')) != '' then rtrim(DeliveryAddr) + @NL else '' end
+ case when rtrim(coalesce(LastLine,'')) != '' then rtrim(LastLine) + @NL else '' end
+ case when rtrim(coalesce(Country,'')) != '' then rtrim(Country) + @NL else '' end
as FormattedMailingAddress
from Address
where Id = 1
Это типичный пример того, почему форматирование данных должно *, когда это возможно и практично *, выполняться на стороне клиента, а не как часть запроса. –