SQL Упорядочить по 2 условиям - PullRequest
0 голосов
/ 05 декабря 2018

Допустим, у меня есть база данных, которая выглядит следующим образом:

price      date       hour
12.00    2018-12-11    5
13.00    2018-12-04    2
14.00    2018-12-06    1 
15.00    2018-12-11    1
16.00    2018-12-04    6
17.00    2018-12-06    10

Мне нужно упорядочить по дате, и если дни совпадают после часа, то результаты должны быть:

   price      date       hour
    13.00    2018-12-04    2
    16.00    2018-12-04    6
    14.00    2018-12-06    1
    17.00    2018-12-06    10
    15.00    2018-12-11    1
    12.00    2018-12-11    5

Я пытался написать простой запрос, но он не мог учитывать 2 условия, одно за другим:

SELECT price, date, hour
FROM table
WHERE date BETWEEN '2018-12-04' AND '2018-12-11'
ORDER BY date, hour

Может ли кто-нибудь помочь с этой проблемой?

СпасибоВсе!

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Единственная реальная проблема, о которой я могу думать, была бы, если бы hour были сохранены как строка.Если это так, используйте неявное преобразование:

SELECT price, date, hour
FROM table
WHERE date BETWEEN '2018-12-04' AND '2018-12-11'
ORDER BY date, hour + 0;
0 голосов
/ 05 декабря 2018

Достаточно простого ORDER BY:

select * from my_table order by `date`, hour;

Обратите внимание, что date обычно является зарезервированным словом, поэтому его использование не рекомендуется и его необходимо заключать в кавычки.

...