原始是这样子的:
lp-1591/hk/s
lp-1591/hk/d
lp-1591/hk/b
lp-1591/hk/s
lp-1591/hk/da
lp-1591/hk/ba
lp-1591/hk/s
lp-1591/hk/d
lp-1591/hk/bf
我想排出来的结果是:
lp-1591/hk/ba
lp-1591/hk/bf
lp-1591/hk/b
lp-1591/hk/da
lp-1591/hk/d
lp-1591/hk/d
lp-1591/hk/s
lp-1591/hk/s
lp-1591/hk/s
就是这样。。有了结果之就结贴。
有什么不明白的请问我。我在线等你们.

解决方案 »

  1.   

    Create Table TEST
    (A Varchar(100))
    Insert TEST Select 'lp-1591/hk/s'
    Union All Select 'lp-1591/hk/d'
    Union All Select 'lp-1591/hk/b'
    Union All Select 'lp-1591/hk/s'
    Union All Select 'lp-1591/hk/da'
    Union All Select 'lp-1591/hk/ba'
    Union All Select 'lp-1591/hk/s'
    Union All Select 'lp-1591/hk/d'
    Union All Select 'lp-1591/hk/bf'
    GO
    Select * From TEST Order By Left(A,12) ,Len(A) Desc
    GO
    Drop Table TEST
    --Result
    /*
    A
    lp-1591/hk/ba
    lp-1591/hk/bf
    lp-1591/hk/b
    lp-1591/hk/da
    lp-1591/hk/d
    lp-1591/hk/d
    lp-1591/hk/s
    lp-1591/hk/s
    lp-1591/hk/s
    */
      

  2.   

    order by后面不用指定字段名称的吗?
      

  3.   

    declare @test table
    (
    col varchar(20)
    )
    insert into @test
    select 'lp-1591/hk/s' union all
    select 'lp-1591/hk/d' union all
    select 'lp-1591/hk/b' union all
    select 'lp-1591/hk/s' union all
    select 'lp-1591/hk/da' union all
    select 'lp-1591/hk/ba' union all
    select 'lp-1591/hk/s' union all
    select 'lp-1591/hk/d' union all
    select 'lp-1591/hk/bf'select col from @test order by col+'z'
    /*
    col                  
    -------------------- 
    lp-1591/hk/ba
    lp-1591/hk/bf
    lp-1591/hk/b
    lp-1591/hk/da
    lp-1591/hk/d
    lp-1591/hk/d
    lp-1591/hk/s
    lp-1591/hk/s
    lp-1591/hk/s
    */