SQLite-запрос для получения данных в порядке по строке - PullRequest
0 голосов
/ 23 марта 2020

TableMain

Task_Id  Task       Time     Date         Repetition    Snooze_Time
1        Meeting    22:59    23-3-2020    2             7
2        Meeting 2  20:40    23-3-2020    1             5 

Мне нужен такой результат: где Time наименьшее и Date = 23-3-2020 Примечание: Time хранится в виде строки (как вы можете видеть он имеет (:) двоеточие) Результат должен содержать только 1 строку (предположим, что в таблице нет одинакового времени)

Task_Id  Task       Time     Date         Repetition    Snooze_Time
2        Meeting 2  20:40    23-3-2020    1             5

Я хочу знать, что запрос существует для получения порядка данных или Time или нет. Если возможно, сообщите мне запрос. Если это невозможно, скажите мне, что я могу сделать?

1 Ответ

0 голосов
/ 23 марта 2020

Вы можете использовать NOT EXISTS:

select t.* from TableMain t
where t.date = '23-3-2020'
and not exists (
  select 1 from TableMain
  where date = t.date and time < t.time
)

или с row_number() оконной функцией:

select t.Task_Id, t.Task, t.Time, t.Date, t.Repetition, t.Snooze_Time
from (
  select *, row_number() over (order by time) rn
  from TableMain 
  where t.date = '23-3-2020'
) t
where t.rn = 1

или:

select * from TableMain
where date = '23-3-2020'
order by time
limit 1

Обратите внимание, что вы должны Используйте только формат YYYY-MM-DD для дат и mm:hh:ss для времени, потому что это единственный формат, с которым вы можете безопасно работать в SQLite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...