2012-02-15 82 views
0

我有一個同時使用pivot和unpivot的查詢,我知道它工作正常。該代碼是存儲過程的一部分,當用戶從窗體傳入參數時,將從Excel宏中調用該存儲過程。SQL Server中的動態數據透視表

我似乎無法想到使我的「IN」字符串變爲動態的方法。 IN部分是類似的

pivot 
    (
    Sum(numbers) for 

    WeekNum in ([12*02],[12*03],[12*04],[12*05],[12*06],[12*07],[12*08],[12*09],[12*10],[12*11],[12*12],[12*13]) 
) as q 

我想使IN子句動態。因此,如果用戶輸入12 * 04作爲起始範圍,12 * 16作爲結束範圍,則上面的代碼應該動態更改。我可以將整個查詢作爲字符串傳遞並更新,但我不確定這是否可行。 有什麼想法?

回答

0

爲您構造SQL語句在存儲過程動態,並通過sp_executesql

+0

執行它爲此將工作,只要我有一個T-SQL基礎問題。考慮上面的字符串,你可以找到使用charindex函數的第一個*的位置。你會如何找到其餘的人? – rvphx 2012-02-15 15:04:22