一个数据表如下:
---------------------------------------------------------------------------
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

解决方案 »

  1.   

    select * from Table1 order by bz desc,zh asc
      

  2.   

    select * from Table1 order by 3 desc,2 
      

  3.   

    select * from [表] order by bz desc
      

  4.   

    create table #t1
    (
       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
      

  5.   

    只有0,1表吗?
    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
      

  6.   

    select * from Table order by bz desc
      

  7.   


    select *
      from table1 
    order by 3 desc,
             2 asc
      

  8.   

    --建表
    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