读书人

排列,该怎么处理

发布时间: 2012-05-01 12:48:58 作者: rapoo

排列
有 01-10 10个数字,把他们排列在 7个 空格里,一共有多少种排列的方法啊? 7个空格里每个数字只能用一次
希望用 SQL 排出来。

[解决办法]

SQL code
;with maco as(    select right('0'+ltrim(number),2) as c    from master..spt_values where type='p' and number between 1 and 10)select * from maco a1,maco a2,maco a3,maco a4,maco a5,maco a6,maco a7where a1.c<>a2.c and a1.c<>a3.c and a1.c<>a4.c and a1.c<>a5.c and a1.c<>a6.c and a1.c<>a7.cand a2.c<>a3.c and a2.c<>a4.c and a2.c<>a5.c and a2.c<>a6.c and a2.c<>a7.cand a3.c<>a4.c and a3.c<>a5.c and a3.c<>a6.c and a3.c<>a7.c and a4.c<>a5.c and a4.c<>a6.c and a4.c<>a7.cand a5.c<>a6.c and a5.c<>a7.cand a6.c<>a7.c/*c    c    c    c    c    c    c---- ---- ---- ---- ---- ---- ----04   07   06   05   01   03   0204   08   06   05   01   03   0204   09   06   05   01   03   0204   10   06   05   01   03   0204   06   07   05   01   03   0204   08   07   05   01   03   0204   09   07   05   01   03   0204   10   07   05   01   03   02...07   01   04   06   10   08   0907   02   04   06   10   08   0907   03   04   06   10   08   0907   05   04   06   10   08   0907   01   05   06   10   08   0907   02   05   06   10   08   0907   03   05   06   10   08   0907   04   05   06   10   08   09(604800 row(s) affected)*/--运行了8秒钟
[解决办法]
探讨

SQL code

;with maco as
(
select right('0'+ltrim(number),2) as c
from master..spt_values where type='p' and number between 1 and 10
)

select * from maco a1,maco a2,maco a3,maco a4,maco a5,m……

[解决办法]
SQL code
set nocount on;with maco as(    select right('0'+ltrim(number),2) as c    from master..spt_values where type='p' and number between 1 and 10),t1 as(select a1.c as c1,a2.c as c2 from maco a1,maco a2 where a1.c<a2.c),t2 as(select a1.c1 as c1,a1.c2 as c2,a2.c1 as c3,a2.c2 as c4 from t1 a1,t1 a2 where a1.c1>a2.c1 and a1.c2>a2.c1 and a1.c1>a2.c2 and a1.c2>a2.c2),t3 as (select a1.*,a2.c1 as c5,a2.c2 as c6 from t2 a1,t1 a2 where a1.c1<a2.c1 and a1.c2<a2.c1 and a1.c3<a2.c1 and a1.c4<a2.c1and  a1.c1<a2.c2 and a1.c2<a2.c2 and a1.c3<a2.c2 and a1.c4<a2.c2),t4 as (select a1.*,a2.c as c7 from t3 a1,maco a2 where a1.c1<a2.c and a1.c2<a2.c and a1.c3<a2.c and a1.c4<a2.cand a1.c5<a2.c and a1.c6<a2.c )select c3,c4,c1,c2,c5,c6,c7 from t4 order by 1,2,3,4,5,6,7 

读书人网 >SQL Server

热点推荐