sqlserver 穷举 排列 组合
困擾我一天的一個算法問題,忽然靈光一閃,想到了,呵呵,個人感覺還算滿意。
直接上最終結果。
問 : 從 n個數中取r個數 窮舉顯示所有排列 和 組合
?
?T-sql? 解:
?
IF EXISTS ( SELECT? *
??????????? FROM??? sys.objects
??????????? WHERE?? object_id = OBJECT_ID(N'[dbo].[number]')
??????????????????? AND type IN ( N'U' ) )
??? DROP TABLE [dbo].[number]
CREATE TABLE number
??? (
????? num INT NOT NULL
????????????? PRIMARY KEY
?--, NameValue varchar(100)???? 任意名字你懂的。
??? )
--搞5個數字進去
DECLARE @i INT
SET @i = 1
WHILE @i <= 5
??? BEGIN
??????? INSERT? INTO dbo.number
??????????????? ( num )
??????? VALUES? ( @i )
??????? SET @i = @i + 1
??? END
--顯示所有排列
SELECT? *
FROM??? dbo.number AS t1
??????? CROSS JOIN dbo.number AS t2
WHERE?? t1.num <> t2.num
?
--顯示所有組合
SELECT? *
FROM??? dbo.number AS t1
??????? CROSS JOIN dbo.number AS t2
WHERE?? t1.num < t2.num
?
?
搞個籃球賽,足球賽的賽程表就瞬間出來了。
?
?
轉載于:https://www.cnblogs.com/sycdirdir/archive/2012/01/27/2330164.html
總結
以上是生活随笔為你收集整理的sqlserver 穷举 排列 组合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动医疗的中国机遇
- 下一篇: Heartbeat,来点真的