【发布时间】:2019-06-06 19:03:03
【问题描述】:
我有下面的代码返回访问邮政编码的顺序。我能够正确返回邮政编码,但为了使数据更加用户友好,我在邮政编码之间添加了一个破折号(-)。
问题在于我无法弄清楚如何消除只有 2 或 3 个邮政编码的行的破折号。
SELECT
[Qry_Zip Stop Sequence].[Load ID],
[1] AS [Stop 1], [2] AS [Stop 2], [3] AS [Stop 3],
[4] AS [Stop 4],
TMS_Load.[Shipped Date/Time],
CONCAT(ISNULL([1], ''), '-', ISNULL([2], ''), '-', ISNULL([3], ''), '-', ISNULL([4], '')) AS [Zip to Zip w Stops]
FROM
(SELECT
[Load ID], [Sequence], [Stop Zip]
FROM
TMS_Load_Stops) ls
PIVOT
(MIN([Stop Zip])
FOR [Sequence] IN ([1], [2], [3], [4])) AS [Qry_Zip Stop Sequence]
INNER JOIN
[TMS_Load] ON [TMS_Load].[Load ID] = [Qry_Zip Stop Sequence].[Load ID];
我希望结果只显示有效邮政编码之间的破折号。
78052-45050-45201 or
73350-45220 or
84009-48009-14452 or
36521-38222-87745-95123 or
73368 or
12789-35789
【问题讨论】:
标签: sql sql-server tsql sql-server-2012 concat