问题描述
- mysql排序问题的sql语句
-
有一个字段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
;
(目前在家,无数据库运行环境,如果有个别拼写错误,请见谅)
时间: 2024-12-27 17:59:27