用SQL实现12345的所有排序序列--【叶子】

怎么样用SQL来实现12345的排序?显然排序结果应该有5的阶乘个,也就是120个结果。

怎么样来处理,我也没有想到什么好的办法,毕竟SQL SERVER是数据库,不是专门用来搞算法的。

但是巧合这里的12345是数字,貌似可以用int循环来处理,简单写一下,抛砖引玉。

 

set nocount on

declare @btime datetime;set @btime=getdate()

 

declare @i int;set @i=12345

declare @j varchar(5);declare @k int

declare @table table(id int)

while (@i<=54321)

begin

    set @j=cast(@i as varchar(5))

    set @k=sign(charindex('1',@j))

    set @k=@k+sign(charindex('2',@j))

    set @k=@k+sign(charindex('3',@j))

    set @k=@k+sign(charindex('4',@j))

    set @k=@k+sign(charindex('5',@j))

    if(@k=5)

       insert into @table select @i

    set @i=@i+1

end

 

select * from @table

select '开始时间:',@btime

select '结束时间:',getdate()

/*

id

-----------

12345

12354

12435

12453

12534

12543

13245

13254

13425

13452

13524

13542

14235

14253

14325

14352

14523

14532

15234

15243

15324

15342

15423

15432

21345

21354

21435

21453

21534

21543

23145

23154

23415

23451

23514

23541

24135

24153

24315

24351

24513

24531

25134

25143

25314

25341

25413

25431

31245

31254

31425

31452

31524

31542

32145

32154

32415

32451

32514

32541

34125

34152

34215

34251

34512

34521

35124

35142

35214

35241

35412

35421

41235

41253

41325

41352

41523

41532

42135

42153

42315

42351

42513

42531

43125

43152

43215

43251

43512

43521

45123

45132

45213

45231

45312

45321

51234

51243

51324

51342

51423

51432

52134

52143

52314

52341

52413

52431

53124

53142

53214

53241

53412

53421

54123

54132

54213

54231

54312

54321

 

开始时间:     2011-03-29 22:04:40.233

结束时间:     2011-03-29 22:04:40.733

*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值