sql中的顺序和组

lc8prwob  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(333)

我有一个数据库:

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
xxslljrj

xxslljrj1#

这是表中的数据:

SELECT * FROM #temp

Select *
from tablename
Order by Serial no DESC, Name;

这是我为以下查询获得的输出:

a1o7rhls

a1o7rhls2#

在你的table上分组一点意义都没有。点菜就行了。

select Serialno,Name
from table _name
order by Name desc
oxiaedzo

oxiaedzo3#

用sql做你想做的事是不可能的。
您希望每个序列号组中的顺序与表中的顺序相同,但表中没有定义良好的顺序。
sql中的表是一组无序的行,任何顺序都必须由 ORDER BY 条款。因此,除非您的顺序可以用sql表示,并且不依赖于表中行的物理位置,否则您的问题就无法解决。
表中的行顺序可以更改,并且依赖于实现。例如,重组可能会改变它。例如,在postgresql中,一个简单的更新会改变顺序,甚至不能保证在两次连续扫描中获得相同的顺序。

相关问题