2012-02-15 52 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