现在的位置: 首页 > 综合 > 正文

Sqlserver Top n 解决办法

2011年07月19日 ⁄ 综合 ⁄ 共 373字 ⁄ 字号 评论关闭

  由于sqlserver 2000 top 时,只支持常量(据说2005支持top函数)。要想直接实现top ?是肯定不可能的了,这里有一个办法仅供参考,不过有点复杂,希望路过的网友提供更好的办法.

CREATE PROCEDURE CustomersTop
(
    @TOP VARCHAR(25),  -- TOP 子句,也就是参数n
    @ORDERBY VARCHAR(500) -- ORDER BY 子句
)
AS

SET NOCOUNT ON
DECLARE @sSQL VARCHAR(500)

SELECT @sSQL = 'SELECT TOP ' + @TOP
SELECT @sSQL = @sSQL + ' * FROM Customers'
SELECT @sSQL = @sSQL + ' WHERE ' + @ORDERBY + ' = 1'

--PRINT @sSQL

EXEC(@sSQL)
SET NOCOUNT OFF

GO

抱歉!评论已关闭.