有一个字段A,字段值有可能相同,写一个sql语句,将相同的值尽量分隔开。例如字段A的值:1,1,1,2,3,3;查询结果要求为:1,2,3,1,3,1.请问sql怎么写?
没有直接的sql,建议取值后写程序排序
同意楼上说法,sql没有这样的排序
一直使用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
;
(目前在家,无数据库运行环境,如果有个别拼写错误,请见谅)