请教为什么语句生成的值不是单数啊?
怪了,本以为下面会生成 1,3,5,7这样的值 却是1,2,3,4,5,6,7,8,9,10 这样的~查看变量也是1,2,4,8这样变的啊。。。。望高手解答
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT,@n as int ;
SET @max = 1000000;
SET @rc = 1;
INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums SELECT n+ @rc FROM dbo.Nums;
print @rc
SET @rc = @rc * 2;
END
郁闷了,这是咋会事啊?
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT,@n as int ;
SET @max = 1000000;
SET @rc = 1;
INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums SELECT n+ @rc FROM dbo.Nums;
print @rc
SET @rc = @rc * 2;
END
郁闷了,这是咋会事啊?
作者: ygs9720 发布时间: 2011-10-31
SET @rc = @rc * 2;
这里结果当然是1,2,4,8
如果要1,3,7应该是SET @rc = @rc * 2+1;
这里结果当然是1,2,4,8
如果要1,3,7应该是SET @rc = @rc * 2+1;
作者: oswica 发布时间: 2011-10-31