一个数据表如下:
---------------------------------------------------------------------------
xm zh bz
asdf 001 0
dfg 002 1
dfd 005 1
hgj 004 0
yu 003 1
---------------------------------------------------------------------------
用怎么样的语句才能实现先排bz为1的顺序排列,再排bz为0的数据
如:排序后
--------------------------------------------
xm zh bz
dfg 002 1
yu 003 1
dfd 005 1
asdf 001 0
hgj 004 0
---------------------------------------------------------------------------
xm zh bz
asdf 001 0
dfg 002 1
dfd 005 1
hgj 004 0
yu 003 1
---------------------------------------------------------------------------
用怎么样的语句才能实现先排bz为1的顺序排列,再排bz为0的数据
如:排序后
--------------------------------------------
xm zh bz
dfg 002 1
yu 003 1
dfd 005 1
asdf 001 0
hgj 004 0
(
xm nvarchar(10),
zh nvarchar(10),
bz int
)
insert into #t1
select 'asdf','001',0 union all
select 'dfg','002',1 union all
select 'dfd','005',1 union all
select 'hgj','004',0 union all
select 'yu','003',1 select * from #t1 order by bz desc,zh
select * from tb order by bz desc,zh asc
3,2是表示第3 列,第二列
--假设为其它如,0,1,2,3 则
select level=0,* from tb where bz=1
union all
select level=1,* from tb where bz!=1
order by level ascselect * from tb
order by case when bz=1 then 0 else 1 end asc
select *
from table1
order by 3 desc,
2 asc
create table tableorder
(
xm varchar(5),
zh varchar(5),
bz varchar(5)
)
--插入数据
insert into tableorder
select 'asdf','001','0'
union all
select 'dfg','002','1'
union all
select 'dfd','005','1'
union all
select 'hgj','004','0'
union all
select 'yu','003','1'--显示数据
select * from tableorder
order by cast(bz as int) desc,zh