关闭

生成Number表的一种方法

152人阅读 评论(0) 收藏 举报
DECLARE @max AS INT, @rc AS INT;
SET @max = 1000000;
SET @rc = 1;
INSERT INTO dbo.Nums(n) VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums(n) SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
END
INSERT INTO dbo.Nums(n)
SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
GO


第一波:1

第二波:2

第三波:1+2,2+2=3,4

第四波:1+4,2+4,3+4,4+4=5,6,7,8

第五波:9-16

...

第N完,有2的N-1次方的数。

最后一波:直到最后。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35596次
    • 积分:527
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:37篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论