假设我有这么个表 CREATE TABLE main (id INTEGER PRIMARY KEY, value TEXT NOT NULL);
查询时用的是 SELECT id, value FROM MAIN ORDER BY id;
这样出来的结果是数据按照 id 排序。业务需要调整数据的顺序,应该怎么实现呢?
我想到的做法是互换两个id的value
有别的更加合理的做法吗
能不能举一个例子,想要按照什么排序,我理不清你的思路。
题主的表述太过模糊,建议以后可以描述的让人可以理解,这样也可以提高解答效率。
业务需要调整数据的顺序:
1、是否存在可排序字段,如果有就按照可排序字段进行排序,如时间、数值类型等。
2、如果无明确可排序字段,我们可以通过新增字段方式实现:
举例:表A中有超市id,货品名name,货品类别type(食品、家具、电子、教培四类),销售时间date,销量num,我需要查询各超市排名前10销售的商品明细数据,如果销售数量相同的,按照食品>电子>家具>教培的顺序进行排序。这种因为中文无特定顺序,我们可以在子查询中新增一个字段‘排名pm’,食品为1,电子为2,家具为3,教培为4。
然后按照row_number()over(partition by 超市id order by 销量num desc,排名pm),即可以得到我们人为所需的排序方式了。