【发布时间】:2016-03-13 16:29:08
【问题描述】:
我有一个如下所示的表格:
EventProfileID ParamName ParamValue
1 _CommandText usp_storedproc_1
2 _CommandText usp_storedproc_2
2 _CommandText usp_storedproc_3
2 _CommandText usp_storedproc_100
3 _CommandText usp_storedproc_11
3 _CommandText usp_storedproc_123
我希望我的输出如下:
EventProfileID ParamValue
1 usp_storedproc_1
2 usp_storedproc_2, usp_storedproc_3, usp_storedproc_100
3 usp_storedproc_11, usp_storedproc_123
但是我有点麻烦。如果我对其中一个事件配置文件 ID 进行选择,我可以使用以下逻辑获得输出:
SELECT LEFT(c.ParamValue, LEN(c.ParamValue) - 1)
FROM (
SELECT a.ParamValue + ', '
FROM DP_EventProfileParams AS a
WHERE a.ParamName = '_CommandText'
and a.EventProfileId = '13311'
FOR XML PATH ('')
) c (paramvalue)
但是,这只是为我提供了一个 EventProfileID 的输出,而且我希望 EventProfileID 作为输出的一部分。
谁能给我任何正确方向的指示,让我了解如何扩展我的代码以包含它并允许代码是动态的,以便我可以显示所有 EventProfileID?
谢谢
【问题讨论】:
标签: sql-server sql-server-2008 tsql sql-server-2008-r2 sql-server-2012