2 buribushufuski buribushufuski 于 2013.08.05 14:02 提问

mysql排序问题的sql语句

有一个字段A,字段值有可能相同,写一个sql语句,将相同的值尽量分隔开。例如字段A的值:1,1,1,2,3,3;查询结果要求为:1,2,3,1,3,1.请问sql怎么写?

3个回答

itian
itian   2013.08.05 15:01

没有直接的sql,建议取值后写程序排序

qingzhishuishou
qingzhishuishou   2013.08.06 09:17

同意楼上说法,sql没有这样的排序

asiaasia666
asiaasia666   2013.09.14 16:39

一直使用oracle、sqlserver,没用过mysql了。
这个查询,oracle、sqlserver都是可以实现的,说下oracle、sqlserver的实现方式,希望对你有帮助。
例如,你查询的表为t_test_table

select *
from  (
    select t2.*,
        t2.denserank || t2.A AS denserank_A
    from  ( 
        select t1.*, 
            DENSE_RANK() OVER(ORDER BY t1.A ) AS denserank
         from t_test_table t1
    ) t2
) t3
order by t3.denserank_A
;

(目前在家,无数据库运行环境,如果有个别拼写错误,请见谅)

Csdn user default icon
上传中...
上传图片
插入图片