`
yiyeqinghuasoon
  • 浏览: 644187 次
文章分类
社区版块
存档分类
最新评论

用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

*/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics