【发布时间】:2014-01-28 17:11:26
【问题描述】:
这很接近,但与“将多行连接成单个文本字符串”Concatenate many rows into a single text string?的帖子不同
但我需要的是,因为表/行有许多相同的名称,我只希望显示 DISTINCT 名称。因此,在上述帖子和谷歌的帮助下,我得以成功......
171444 ACTIVE,ACTIVE,ACTIVE,ACTIVE,ACTIVE,ACTIVE,ACTIVE,ACTIVE
169171 RETIRED,RETIRED,RETIRED,RETIRED,RETIRED
173648 RETIRED,RETIRED,RETIRED,RETIRED,INELIGIBLE,INELIGIBLE
我想要的是:
171444 ACTIVE
169171 RETIRED
173648 RETIRED,INELIGIBLE
我想我成功了:
Select distinct ST2.EmployeeID,
substring((Select DISTINCT (',' + ( ST1.AccrualStatus )) AS [text()]
From dbo.Plan2 ST1
Where ST1.EmployeeID = ST2.EmployeeID
For XML PATH ('')),2, 1000) [Plan2]
From dbo.Plan2 ST2
SUBSTRING 中需要第二个 DISTINCT 以确保我们只为每个值返回一个出现值。
【问题讨论】:
-
我发布了解决方案,因为我无法回答自己的问题。希望对其他人有所帮助。
-
希望得到一些帮助,现在我需要更新另一个表中显示连接项的字段,但是我的更新语句在更新时失败,只能在选择列表中指定一个表达式当子查询没有用 EXISTS 引入时。
标签: tsql concatenation distinct