【问题标题】:SQL Order By Custom SequenceSQL 按自定义顺序排序
【发布时间】:2020-08-19 15:45:53
【问题描述】:

我有这个顺序的数据

Id   Value
--   ----
1    a
1    b
1    c
2    a
2    c
3    b
4    c
4    b
4    a

我想按此顺序对数据进行排序

Id   Value
--   ----
1    a
2    a
3    b
4    c
1    b
2    c
4    b
1    c
4    a

【问题讨论】:

  • 这种排序背后的逻辑是什么?
  • 不要只发布您预期的订单并期望人们推断逻辑。我们在这里不按字面意思收费,因此请在您的问题中添加更多。
  • 太好了,感谢您告诉我们。祝你好运!当您弄清楚如何执行此操作时,不要忘记发布答案,并解释其背后的逻辑。
  • 请发表您的尝试。
  • 实际上表中有多个ID相同的记录。但是当我需要获取它们并显示在页面上时,所有唯一的 Ids 数据都应该在第一批中显示,依此类推。

标签: sql sql-server sql-order-by


【解决方案1】:

你似乎想穿插数字。为此,您可以使用row_number()

order by row_number() over (partition by id order by value),
         id

【讨论】:

  • 这确实产生了与 OP 要求的非常相似的东西,除了与 4s 配对的 a,c 值。
猜你喜欢
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
  • 1970-01-01
  • 2015-05-12
相关资源
最近更新 更多