我正在使用SQL Server2008。我的过程是
SELECT ContractorID ,
Name,
ROW_NUMBER() OVER (ORDER BY ContractorID) as RowNumber
FROM dbo.Contractor
这是可行的,但现在我想将参数传递给OVER
函数。
我试过了 :
DECLARE @OrderBy VARCHAR(MAX)
SET @OrderBy = 'ORDER BY ContractorID'
SELECT ContractorID ,
Name,
ROW_NUMBER() OVER (@OrderBy) as RowNumber
FROM dbo.Contractor
这给出了错误“ @OrderBy附近的语法不正确”?我怎样才能做到这一点?谢谢。
您可能有一个动态SQL,然后执行它
DECLARE @OrderBy VARCHAR(MAX)
SET @OrderBy = 'ORDER BY ContractorID'
DECLARE @SQL VARCHAR(MAX)
SET @SQL =
'SELECT ContractorID ,
Name,
ROW_NUMBER() OVER (' + @OrderBy + ') as RowNumber
FROM dbo.Contractor '
EXEC (@SQL)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句