【发布时间】:2016-11-08 10:56:09
【问题描述】:
在过去一天左右的时间里,我断断续续地阅读了很多背景资料,但我对如何实现这一点并不明智。
我查看了这个网站并找到了将多行连接成一列的方法,但是我所追求的是更定制的,请帮助...
我有两张表 - 一张是人员列表和有关他们的详细信息,例如姓名等和人员参考。
第二个包含关于一个人的多个警报,一个人可以有多个警报。这将包含人员引用和他们在字符串中的警报类型。
我想在人员引用上使用内部连接来连接这两个表。 接下来我想找到每个人的所有警报并将其连接成一个字符串并将其显示为“所有警报”列。
所以我最终会得到以下输出:
First Name | Surname | All Alerts
-----------+---------+--------------------------
Tony | Stark | Alert 1, Alert 2, Alert 3
我可以通过警报表中的所有警报并将每个人的警报放入一个字符串中,显然我需要为每个人连接一个值,并且还没有弄清楚如何做到这一点.
我花了一天时间研究 XMLPath 解决方案并使用 CTE、CROSS APPLY 和子查询来指定 where 子句。我有点失落。
DECLARE @ConcatenatedVals VARCHAR (255)
SET @ConcatenatedVals =
(
DECLARE @AllAlerts VARCHAR(8000)
SELECT @AllAlerts = COALESCE(@AllAlerts + ', ', '') + personAlert
FROM Alerts
SELECT @AllAlerts AS 'All Alerts'
)
【问题讨论】:
标签: string subquery concatenation coalesce