order by substring(字段,起始位,长度)

解决方案 »

  1.   

    select * from 表
    order by substring(字段, 9, 10)
      

  2.   

    select * from tb order by right(col,10) (desc)
      

  3.   

    czpms0611031512    czpwerwr0611021512       czpwerwer0611031512 
    他前面字母的位数不定.除非你用charindex()找到0的位置.select * from tb order by substring(col , charindex('0',col) , len(col) - charindex('0',col) + 1)
      

  4.   

    order by right(column,len(column) - patindex('%[^a-z]%',column) + 1)
      

  5.   

    我不是在sql 中用的.我是用TQuery 组件,在order中赋值用的.
      

  6.   

    select *,substring(字段, 9, 10) as orderbycolname from 表
    order by orderbycolname
      

  7.   

    所以说,你们上面的都不行,不能写在sql中,这样的话我早就试过了.
      

  8.   

    select *,right(column,len(column) - patindex('%[^a-z]%',column) + 1)
    ) as orderbycolname from 表
    order by orderbycolname
      

  9.   

    看我程序:
    try
       Query2.Active := True;
       Query2.Filtered:=False;
       Query2.Filter:='subdirectory like ''%.bak'' and subdirectory like ''Czp%'' ';
       Query2.Filtered:=True;
       Query2.Order := 'subdirectory  desc';
       Restore_Bitn.Enabled :=  Query2.RecordCount > 0 ;
      except
      

  10.   

    其中:Query2.Order := 'subdirectory  desc'; 是关键.
    如何在其中赋值获得我所要的结果.
    在TQuery2.sql.text 中查询的是一存储过程.不能直接操作字段,只能通过给Query2.Order 赋值处理.