2013-02-23 105 views
0

我想知道如何過濾(把where子句)在這樣的動態查詢的結果是:如何通過where子句過濾execute(@query)的結果?

execute(@query) 

問題是@query的列數是動態的,標題是未知的,因爲查詢是PIVOT的結果:

TSQL creating a dynamic report from two tables, one table is holds the headers, other one, data

我想要得到的結果是這樣的:

select * from execute(@query) where column(1) = 'something' 

感謝您的幫助提前。

回答

0
set @query = N'select * from (' + @query + N') t where [col1] = ''something'''; 

exec (@query) 

您可以使用未轉義的表來計算列的名稱,並使用它來代替col1。

+0

感謝您的解決方案。它似乎有效,但我得到了另一個問題: Col名稱是Arabics,所以我得到這個錯誤:'???'附近的語法不正確。如何避免這一點? – Kardo 2013-02-23 13:42:17

+0

@Hogan,你會回覆嗎? – Kardo 2013-02-23 13:56:44

+0

你會回覆嗎? – Kardo 2013-02-23 14:03:00