如何在PostgreSQL中使用循环序列执行排序

avi

我有一个包含3列(id,日期,数字)的表,数字是从1到9999的值。一旦达到9999,所有系列都将更改为负数(又称-1到-9999),并且从1开始。

这是我的查询:

select id,date,number
from table
order by date DESC, abs(number) DESC

得到以下结果:

26    3.1.17      5
25    3.1.17      4
21    2.1.17    -9999
3     2.1.17    -9998
4     2.1.17    -9997
51    2.1.17      3
6     2.1.17      2
7     2.1.17      1
10    1.1.17    -9996

基本上按日期对数据进行排序,然后按数字列对数据进行排序。由于排序是按日期进行的,因此它在大多数情况下都有效,但是在将数字从更改-99991顺序的日期中,情况会混乱。

这应该是结果

id   date    number
26    3.1.17      5
25    3.1.17      4
51    2.1.17      3
6     2.1.17      2
7     2.1.17      1
21    2.1.17    -9999
3     2.1.17    -9998
4     2.1.17    -9997
10    1.1.17    -9996

我怎样才能做到这一点?

克林

尝试:

select id,date,number
from a_table
order by date desc, number < 0, abs(number) desc

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Twig中使用变量循环序列?

如何在PHP中使用foreach循环执行多维数组?

如何在Python中使用执行循环3次?

如何在Postgresql函数中使用变量进行循环查询

如何在jquery中使用tablesorter更改排序列时首先按升序对表进行排序?

如何在鱼壳中使用限制序列进行循环循环

如何在序列和列表中使用嵌套循环以及Ansible中如何避免花括号

如何在 Apache-Spark 2.x 中使用 java 执行增量序列

如何在 Symfony 中使用循环引用处理程序序列化为 json?

如何在c#中使用循环依赖项将对象序列化为xml?

如何在squeryl(PostgreSQL)中使用一个序列自动递增多个表?

如何在C#中使用linq查询对循环顺序进行排序?

如何在python中使用faulhaber序列?

如何在 Rust 中使用序列號?

如何在序列中使用sed

如何在转义序列中使用变量?

如何在循环中使用Promises,并确保在继续执行之前全部实现?

如何在 Powershell 中使用 where 子句为多维数组执行 foreach 循环?

如何在for循环中使用不同的值执行Math.random()?

如何在排序函数中使用rbegin()?

如何在循环的每次迭代中使用不同的主体数据在 For 循环中执行多个 axios POST 请求?

如何在laravel中使用列排序进行列排序

如何在if语句中使用循环

如何在 obj 中使用 for 循环?

如何在AutoMapper中使用foreach循环

如何在循环引用中使用@JsonIdentityInfo?

如何在JavaScript中使用map()循环

如何在循环中使用等待

如何在速度模板中使用“ for”循环?