如何基于两列在ecto中对表进行排序

古尔温德

我有表timeoperation列。“操作”列包括createupdate并且delete值和时间具有utc datetime。我想基于日期时间进行排序,并且如果基于同一时间戳存在多个行,我想首先获取delete行andcreate和and than update

错误:

1. { time: TIME1, operation: "create" }
2. { time: TIME1, operation: "delete" }
3. { time: TIME1, operation: "update" }

正确

1. { time: TIME1, operation: "delete" }
2. { time: TIME1, operation: "create" }
2. { time: TIME1, operation: "update" }

因此,它将始终优先于选定的优先级,delete并且create与之相关的值update应最终出现。

如果我们使用以下查询进行ecto,它将始终接受“删除”作为第一个值,但不会进行排序updatecreate行操作。我很想知道,如果我们能够以某种方式在此查询延长片段的使用已经基于所有排序createupdatedelete领域。

     |> order_by([e],
       asc: e.time,
       desc: e.operation == "delete"
      )
凯鲁·撒萨尔

您可以尝试以下操作(如果使用postgres):

|> order_by([e],
  asc: e.time,
  asc: fragment("CASE ? WHEN 'delete' THEN 1 WHEN 'create' THEN 2 WHEN 'update' THEN 3 END", e.operation)
)

有关这种排序的详细信息,请参见sql ORDER BY特定顺序的多个值?

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Ecto中按两列的总和来排序查询?

按mysql和wordpress列对表中的数据进行排序

如何通过python中的两列对csv文件进行排序?

在Javascript中对表格的列进行排序无法正常工作

按列值对表格进行排序

用户单击列时对表进行排序

如何通过Lua中的值对表进行排序?

在Angular中对表格列进行排序

Blazor如何对表中的数据进行排序或升序

SQLite3:如何对表中的列重新排序?

如何在Mysql / Sql中按时间列对表进行排序?

如何在1列上对表进行排序,然后在PHP中对另一列进行排序

无法对表格中的日期列进行排序

如何使用AngularJS而不是在查询子句中按两列的差异对表进行排序?

如何基于一列对两列进行排序?

如何按数据库中的列对表进行排序?

按列对表行进行排序

如何使用pl sql块对表中的数据进行排序

如何基于两列的值在Java中对2D数组进行排序

如何通过使用某种特定格式对给定的列进行排序来对表进行排序

基于组合在一起的多列对表中的行进行排序

如何在lua中根据多个值对表进行排序?

使用 ListObject 列引用对表进行排序

如何在 Contour 中按两列对表格进行排序?

如何使用jQuery按两列对表格进行排序?

如何对表中的每一列进行排序并在SQL中显示每列中的最高值?

如何按it列的计数对表进行排序?

按 R 中的列值对表行进行排序

根据特定的默认列对表进行排序