【问题标题】:Need help sorting data in oracle需要帮助在oracle中对数据进行排序
【发布时间】:2019-12-25 03:54:41
【问题描述】:

我有一个值列表,我需要按特定顺序对查询进行排序。

ID |价值 |
1 AA
1 出
2 出
2 出
3 AA
3 出
4 抄送
4 出
4 出
5 抄送
5 出
6 AA
6 出
7 抄送
7 出
8 出
8 BB

我需要上面的排序如下:

ID |价值 |
1 AA
1 出
3 AA
3 出
6 AA
6 出
8 BB
8 出
4 抄送
4 出
4 出
5 抄送
5 出
7 抄送
7 出
2 出
2出

关于在 SQL 中执行此操作的最佳方法有什么想法吗?

提前感谢您的宝贵时间。

【问题讨论】:

  • 排序的逻辑是什么?

标签: sql oracle sorting


【解决方案1】:

我想你想要:

order by max(case when value <> 'OUT' then value end) over (partition by id),
         value

【讨论】:

  • 按最大值排序(当值 'OUT' 然后值结束的情况)超过(按 id 分区)这很好用,谢谢
【解决方案2】:

只是提出另一个想法:

Order by id, 
         case when value <> 'OUT' then value end

干杯!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 2015-06-28
    • 2014-06-29
    • 2019-11-07
    • 1970-01-01
    • 2019-12-16
    • 2015-11-27
    • 1970-01-01
    相关资源
    最近更新 更多