生成Number表的一种方法

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次方的数。

最后一波:直到最后。

阅读更多
文章标签: insert
个人分类: sqlServer
上一篇对于在hierarchies里出现过attributes,不能让它再单独出现。
下一篇SQLSERVER 列转置的存储过程
想对作者说点什么? 我来说一句

DLG/DEM/DOM

shaojieli shaojieli

2016-08-29 09:10:23

阅读数:559

没有更多推荐了,返回首页

关闭
关闭