У меня есть оператор выбора, который должен упорядочить результаты по двум столбцам.Моя проблема в том, что мне нужно применять порядок только в первом столбце, когда есть определенное значение.В противном случае, я хочу, чтобы результаты сортировались по второму столбцу.
Я уверен, что мое объяснение сбило с толку большинство людей, поэтому вот пример: в большинстве случаев я хочу, чтобы результаты сортировались по столбцу B (Дата) DESC.Однако есть ситуации, когда мне нужно, чтобы записи показывались выше (или до) даты заказа.Это происходит, когда столбец A (Состояние) имеет значение «Требуется ответ».Итак, если Status = 'Needs Response', тогда он мне нужен в верхней части результатов, но, если он имеет какое-либо другое значение, он должен быть упорядочен только по Date в порядке DESC.
В моих попыткахДля этого я работал с инструкциями CASE, но каждая попытка приводит к тому, что все результаты упорядочиваются по Status и , а затем по Date.То, что мне нужно, это начальный заказ, чтобы применить только , когда значение статуса = 'Требуется ответ'.
Status | Date
---------------------------
Done | 11/25/2018
Done | 11/12/2018
Confirm | 10/10/2018
Needs Response | 12/5/2018
Acknowledge | 12/8/2018
Confirm | 12/1/2018
Needs Response | 11/24/2018
Confirm | 12/10/2018
Используя те же данные выше, независимо от того, как я пытаюсь это сделать, я всегдасначала получите данные, отсортированные по статусу, а затем по дате.При использовании оператора CASE я могу получить «Требуется ответ» в начало результатов, но остальные записи все еще сортируются по состоянию до даты.
Мой желаемый результат выборки данных будет следующим:
Status | Date
---------------------------
Needs Response | 12/5/2018
Needs Response | 11/24/2018
Confirm | 12/10/2018
Acknowledge | 12/8/2018
Confirm | 12/1/2018
Done | 11/25/2018
Done | 11/12/2018
Confirm | 10/10/2018