SQL查询按日期降序并带有多个“ like”子句以非常特定的顺序获取结果

穆本·侯赛因

我正在尝试创建一个SQL查询,但是确实有些挣扎,不确定如何编写最佳查询方式。我目前有2列,一列包含时间戳,另一列包含随机信息。我希望时间戳按降序排列(足够容易),但是对于第二列,我想按以下顺序输出结果

注意:%是有意的,因为它们在“剩余”列中。

  1. '%[EVENT = agentStateEvent]%'-首先
  2. %[EVENT = TerminalConnectionCreated]%'-秒
  3. 那个时间戳的第三,第四等等。

例如:

两列都是字符串(最大varchar)


    时间戳| 剩余时间
    10:30 | %[EVENT = agentStateEvent] [Agentid = 424] [Queue = 45235]%
    TIMESTAMP 10:30 | %[EVENT = TerminalConnectionCreated] [Agentid = 424] [Queue = 45235]%
    TIMESTAMP:10.31 | %[EVENT = agentStateEvent] [Agentid = 425] [Queue = 453635]%
    TIMESTAMP 10.31 | %[EVENT = TerminalConnectionCreated] [Agentid = 425] [Queue = 45235]%
    TIMESTAMP 10.31 | %[EVENT = CallDropped] [Agentid = 425] [Queue = 45235]%
    TIMESTAMP 10.32 | %[EVENT = TerminalConnectionCreated] [Agentid = 426] [Queue = 44235]%
    TIMESTAMP 10.32 | %[EVENT = CallDropped] [Agentid = 426] [Queue = 45235]%

由于REMAINING列包含很多信息,因此需要将其包装在“ like”命令中。

我到目前为止的查询是:

select * from TimestampsStorage
order by timestamp desc, remaining desc
托斯滕·凯特纳(Thorsten Kettner)

您正在寻找CASE ... WHEN

order by 
  timestamp, 
  case when remaining like '%[EVENT=agentStateEvent]%' then 1
       when remaining like '%[EVENT=TerminalConnectionCreated]%' then 2
       else 3
  end;

万一'%[EVENT=...'总是第一个进来remaining,您可以寻找'%'显式。这样可以加快查询速度。

order by 
  timestamp, 
  case when remaining like '#%[EVENT=agentStateEvent]%' escape '#' then 1
       when remaining like '#%[EVENT=TerminalConnectionCreated]%' escape '#' then 2
       else 3
  end;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有左联接的SQL查询可从特定日期开始按降序获取行

来自分类Dev

如何以与子句中相同的顺序获取查询结果

来自分类Dev

SQLAlchemy-以与IN子句相同的顺序获取查询结果

来自分类Dev

SQL查询按数据分组,但带有order by子句

来自分类Dev

按日期列报告顺序降序在SQL Server中?

来自分类Dev

按日期列报告顺序降序在SQL Server中?

来自分类Dev

显示带有多个答案的sql查询结果

来自分类Dev

SQL查询无法获得带有多个AND的结果

来自分类Dev

Rails activerecord在哪里按特定顺序获取结果

来自分类Dev

带有 WHERE 语句的 SQL SELECT 子句用于特定顺序

来自分类Dev

在SQL Server 2008 R2的查询中使用带有dapper的多个like子句进行分页

来自分类Dev

如何按降序对查询结果进行分页

来自分类Dev

mysql查询结果按降序排列

来自分类Dev

如何按降序对查询结果进行分页

来自分类Dev

按日期顺序查询连续结果

来自分类Dev

在 R 中读取 SQL 查询时使用带有日期的 Where 子句

来自分类Dev

按LIKE的顺序查询多个类似条件

来自分类Dev

在多个列上按匹配顺序排序(并带有多个条件)

来自分类Dev

如何在带有IN子句和子查询的查询中使用多个LIKE语句?

来自分类Dev

编写SQL查询以排除日期早于带有特定标志的记录

来自分类Dev

基于特定列值和插入降序日期过滤记录的 SQL 查询

来自分类Dev

带有not not子句的SQL select查询

来自分类Dev

带有LINQ查询子查询的not in子句的SQL查询

来自分类Dev

如何获取记录日期明智的降序,然后给没有日期的记录-在SQL中

来自分类Dev

如何获取记录日期明智的降序,然后给没有日期的记录-在SQL中

来自分类Dev

MySQL查询结果集的顺序是大多数结果/匹配项按降序排列

来自分类Dev

在 WHERE 子句中带有日期的 GemFireXD 导出查询

来自分类Dev

SQL:获取带有两个特定事件的日期

来自分类Dev

SQL:获取带有两个特定事件的日期

Related 相关文章

  1. 1

    具有左联接的SQL查询可从特定日期开始按降序获取行

  2. 2

    如何以与子句中相同的顺序获取查询结果

  3. 3

    SQLAlchemy-以与IN子句相同的顺序获取查询结果

  4. 4

    SQL查询按数据分组,但带有order by子句

  5. 5

    按日期列报告顺序降序在SQL Server中?

  6. 6

    按日期列报告顺序降序在SQL Server中?

  7. 7

    显示带有多个答案的sql查询结果

  8. 8

    SQL查询无法获得带有多个AND的结果

  9. 9

    Rails activerecord在哪里按特定顺序获取结果

  10. 10

    带有 WHERE 语句的 SQL SELECT 子句用于特定顺序

  11. 11

    在SQL Server 2008 R2的查询中使用带有dapper的多个like子句进行分页

  12. 12

    如何按降序对查询结果进行分页

  13. 13

    mysql查询结果按降序排列

  14. 14

    如何按降序对查询结果进行分页

  15. 15

    按日期顺序查询连续结果

  16. 16

    在 R 中读取 SQL 查询时使用带有日期的 Where 子句

  17. 17

    按LIKE的顺序查询多个类似条件

  18. 18

    在多个列上按匹配顺序排序(并带有多个条件)

  19. 19

    如何在带有IN子句和子查询的查询中使用多个LIKE语句?

  20. 20

    编写SQL查询以排除日期早于带有特定标志的记录

  21. 21

    基于特定列值和插入降序日期过滤记录的 SQL 查询

  22. 22

    带有not not子句的SQL select查询

  23. 23

    带有LINQ查询子查询的not in子句的SQL查询

  24. 24

    如何获取记录日期明智的降序,然后给没有日期的记录-在SQL中

  25. 25

    如何获取记录日期明智的降序,然后给没有日期的记录-在SQL中

  26. 26

    MySQL查询结果集的顺序是大多数结果/匹配项按降序排列

  27. 27

    在 WHERE 子句中带有日期的 GemFireXD 导出查询

  28. 28

    SQL:获取带有两个特定事件的日期

  29. 29

    SQL:获取带有两个特定事件的日期

热门标签

归档