我有一个数据库:
Serial no. Name
1 A
1 B
2 Aa
2 Z
3 D
3 A
3 C
我希望结果为
Serial no. Name
2 Aa
2 Z
1 A
1 B
3 D
3 A
3 C
我希望每个组(具有相同的序列号)根据组中的第一个名称与其他组进行排序,但在组内部,名称的顺序应保持不变。
我尝试过做
Select * From tablename
group by `Serial no.`
order by `Name`
但我得到了:
Serial no. Name
2 Aa
1 A
3 D
答案 0 :(得分:0)
答案 1 :(得分:0)
在桌面上分组根本没有意义。订购会很好。
select Serialno,Name
from table _name
order by Name desc
答案 2 :(得分:0)
用SQL做你想做的事是不可能的。
您希望每个序列号组中的订单与表格中的订单相同,但表格中没有明确定义的订单。
SQL中的表是一组无序行,任何顺序都必须由ORDER BY
子句强加。因此,除非您的订单可以用SQL表示,并且不依赖于表中行的物理位置,否则您的问题无法解决。
表中行的顺序可以更改,并且取决于实现。例如,重组可能会改变它。例如,在PostgreSQL中,一个简单的更新会改变顺序,甚至不能保证在两次连续扫描中获得相同的顺序。