您的位置:首页 > 数据库

使用T-SQL模仿程序实现冒泡排序

2015-10-05 20:39 369 查看
/*

Project: 此次研究的课题是模仿程序实现冒泡排序(数据库只需要排序)

*/

--1.数据库实现冒泡排序(只需要按照要求升序或倒序排列即可)

--2.数据库模仿程序实现冒泡排序

--a.申明表

--a.1 临时数据表

declare @tbl table(

ID int identity(1,1) primary key not null,

Num int not null

)

--b.插入临时数据

insert into @tbl(Num)

select 30 as num union all

select 5 as num union all

select 20 as num union all

select 1 as num union all

select 16 as num union all

select 7 as num

select * from @tbl

--c.实现冒泡排序过程

declare @cnt int ,@index int

select @cnt = count(0) from @tbl

set @index = 1

while(@index <=@cnt) begin --d.外层控制循环的次数(按照升序)

declare @index_2 int ,@cnt_2 int,@pre_Num int , @pre_ID int,

@cur_Num int , @cur_ID int

set @index_2 =1

select @cnt_2 = count(0) from @tbl

while(@index_2 <= @cnt_2) begin --e.控制顺序

select @cur_Num = Num,@cur_ID = ID from @tbl where ID = @index_2

if(@index_2 = 1) begin

set @pre_ID = @index_2

set @pre_Num = @cur_Num

end else begin

--f.交换彼此的位置

if(@cur_Num < @pre_Num) begin

update @tbl set Num = @pre_Num

where ID = @index_2

update @tbl set Num = @cur_Num

where ID = @pre_ID

set @pre_ID = @index_2

end

else begin

set @pre_Num = @cur_Num

set @pre_ID = @index_2

set @index_2 +=1

continue

end

end

set @index_2 +=1

end

set @index +=1

end

select * from @tbl
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: