我需要选择@min和@max之间的所有数字N(整数)
有没有什么方法可以在不使用某种循环的情况下实现这一目标?
例子:
假设@min = 5,@max = 9
我需要 SQL 查询返回以下值:5,6,7,8,9
(我使用的是MSSQL 2005)
Thanks!!
编辑:
这是一个使用自定义函数的解决方案,效果很好。
但手动循环所有数字似乎太费力了。
所以问题仍然是,是否可以在没有循环的情况下实现。
CREATE FUNCTION GetAllNBetween
(
@Min int,
@Max int
)
RETURNS @N TABLE(n int)
AS
BEGIN
WHILE @Min <= @Max
BEGIN
INSERT INTO @N VALUES(@Min)
SET @Min = @Min + 1
END
RETURN
END
像这样使用:
SELECT * FROM GetAllNBetween(5, 9)
查询(按照@Eric的建议)
select ROW_NUMBER() OVER (ORDER BY so1.id) from sysobjects so1,sysobjects
在我的几乎空的测试数据库中返回 1 到 ~3000 之间的数字。您可以添加另一级别的 sysobjects 以获得疯狂的行数。然后过滤这个就很简单了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)