【问题标题】:SQLite query for retrieve data Order By用于检索数据的 SQLite 查询 Order By
【发布时间】:2020-03-15 06:32:12
【问题描述】:
(TableMain)
Task_Id  Task       DateTime          Repetition    Snooze_Time
8        Call esha  2020-3-15 12:29   1             5
9        Meeting    2020-3-15 11:50   1             1

(TableRoutine)
Task_Id  Task       DateTime          Repetition    Snooze_Time
1        Go to GYM  2020-3-15 14:18   0             0

我在 SQLite 中有两个表

我需要按日期时间排序的结果: (两个表中的DateTime列都是SQLite的DateTime数据类型) 我正在使用此查询来合并两个表数据。但我需要以下格式的数据。

SELECT Task, DateTime FROM TableMain UNION ALL SELECT Task, DateTim FROM TableRoutine

但我需要以下格式的数据。

Task        DateTime       
Meeting     2020-3-15 11:50 
Call esha   2020-3-15 12:29
Go to GYM   2020-3-15 14:18

这样可以检索数据吗?

【问题讨论】:

    标签: android sql sqlite


    【解决方案1】:

    一般的模式是要么只是在末尾粘贴一个 ORDER BY,要么将你已经写的内容包装在另一个选择中,然后 ORDER BY:

    要么:

    SELECT Task, DateTime FROM TableMain 
    UNION ALL 
    SELECT Task, DateTim FROM TableRoutine
    ORDER BY DateTime
    

    或者:

    SELECT * FROM
    (
      SELECT Task, DateTime FROM TableMain 
      UNION ALL 
      SELECT Task, DateTim FROM TableRoutine
    ) x
    ORDER BY x.DateTime
    

    看看哪一个适合你 - 一些数据库有时拒绝做第一个表格。例如有很多数据库不会这样做:

    SELECT a, b FROM table1 
    UNION ALL 
    SELECT a, b FROM table2
    ORDER BY COALESCE(a,b)
    

    并且需要第二种形式(或其他一些技巧,例如从每个中选择 coalesce(a,b))


    避免使用通常在编程语言中保留的单词作为列名(如 DateTime)

    【讨论】:

    • 只是好奇为什么这个答案被接受然后我接受了,而你接受了另一个相同的答案?
    • @CaiusJard:“相同”是指您从我的答案中复制了该查询,对吗? ;-)
    • @juergend 一点也不;您可以从我在他的第二列名称上复制该人的错字中看出它是从他的问题中复制的。我的也更好地格式化为 OPs 漂亮的印刷品,加上周围的建议,为什么我提出两种形式作为进一步表明我的努力是我自己的。如果您对我是否知道在您启发我之前将订单添加到工会的尽头的选项有任何疑问,请参阅this old question ;)
    • 实际上我看到了你上面的答案,并且 UNION ALL 查询也得到了他的帮助,所以我接受了他的答案。但也感谢你的命名提示。我将它应用于我的数据库
    【解决方案2】:

    你甚至不需要子查询:

    SELECT Task, DateTime FROM TableMain 
    UNION ALL 
    SELECT Task, DateTime FROM TableRoutine
    order by DateTime 
    

    Demo

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 2017-12-16
      相关资源
      最近更新 更多