SELECT TOP 33 id=identity(int,1,1) INTO #1 FROM sysobjects
SELECT A.id ,B.id,C.id,D.id,E.id,F.id
FROM #1 A,#1 B,#1 C,#1 D,#1 E,#1 F
WHERE A.ID<B.ID AND A.ID<C.ID AND A.ID<D.ID AND A.ID<E.ID AND A.ID<F.ID
AND B.ID<C.ID AND B.ID<D.ID AND B.ID<E.ID AND B.ID<F.ID
AND C.ID<D.ID AND C.ID<E.ID AND C.ID<F.ID
AND D.ID<E.ID AND D.ID<F.ID
AND E.ID<F.ID
ORDER BY A.id,B.id,C.id,D.id,E.id,F.id
--result : 1107568 SQL Server 2005 46's
-- 创建号码表(1-33)tb_rednum
SELECT TOP 33 id=identity(int,1,1) INTO dbo.tb_rednum FROM sysobjects
-- 创建结果表 (所有组合) tb_allred
SELECT A.id num01 ,B.id num02,C.id num03,D.id num04,E.id num05,F.id num06 into dbo.tb_allred
FROM tb_rednum A,tb_rednum B,tb_rednum C,tb_rednum D,tb_rednum E,tb_rednum F
WHERE A.ID<B.ID AND A.ID<C.ID AND A.ID<D.ID AND A.ID<E.ID AND A.ID<F.ID
AND B.ID<C.ID AND B.ID<D.ID AND B.ID<E.ID AND B.ID<F.ID
AND C.ID<D.ID AND C.ID<E.ID AND C.ID<F.ID
AND D.ID<E.ID AND D.ID<F.ID
AND E.ID<F.ID
本文介绍了一种通过SQL语句在SQL Server中生成双色球红球的所有可能组合的方法。首先创建一个临时表#1,然后利用多表自连接生成组合,并通过WHERE子句排除重复。接着,创建实际的号码表tb_rednum,再以此为基础生成所有组合结果表tb_allred。通过这种方法,可以得到1107568种不同的红球组合。

被折叠的 条评论
为什么被折叠?



