有组数据,分别为id=4,id=5,id=3,怎样实现排序 4,5,3,就是id=4的排在id=5的前面,id =5的排在 id = 3的前面

解决方案 »

  1.   

    另加一组字符 或者 union all合并
      

  2.   

    order by decode(字段,3,99999999999,字段)规则很多就translate
      

  3.   

    用 order by decode(id, 4, 1, 5, 2, 3, 3, id) asc
      

  4.   


    decode ,translate在mysql有这样的函数吗
      

  5.   

    order by case when id =4 then 1 when id = 5 then 2 when id =3 then 3 end
      

  6.   

    WITH TEST AS (
    SELECT 4 AS ID FROM DUAL
    UNION ALL
    SELECT 5 AS ID FROM DUAL
    UNION ALL
    SELECT 3 AS ID FROM DUAL
    )SELECT *   FROM TEST ORDER BY MOD(ID,4)
      

  7.   

    decode函数 和case……when……end都能满足你的要求,前提是你的需要排序的ID的数量是有限的可以列举的。
      

  8.   

    with t as(
    select 5 id from dual
    union all
    select 4 from dual
    union all
    select 3 from dual
    )select * from t order by decode(id,4,3,5,4,3,5,id);
            ID
    ----------
             4
             5
             3
      

  9.   

    select * from tablename order by decode(id, 4, a, 5, b, 3, c, id) asc  只要abc是按升序排列的数字就可以实现,要是还有其他的id会按与abc的大小排列