Условная группа по SQL-запросу - PullRequest
0 голосов
/ 25 июня 2018

Я бы хотел отсортировать запрос к базе данных по:

числовому значению. РАСХОД С учетом свойства String из другого поля

Что-то вроде:

ORDER BY money DESC,
currency = 'EUR'

Пример:

money    |     currency
-----------------------
200      |     EUR
300      |     USD
500      |     USD
100      |     EUR
400      |     EUR

Я бы хотел отсортировать money по убыванию только тогда, когда currency равно EUR.Я не хочу, чтобы при сортировке учитывалась другая валюта, например:

money    |     currency
-----------------------
400      |     EUR
200      |     EUR
100      |     EUR
300      |     USD
500      |     USD

Мне не нужна сортировка после EUR.Может быть абсолютно случайным

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Если вы действительно хотите, чтобы условие заказа было только на сумму в евро, вы можете сделать что-то вроде этого:

 ORDER BY (currency = 'EUR') * money DESC
0 голосов
/ 25 июня 2018

Вы можете использовать несколько ключей в order by:

order by (currency = 'EUR') desc,
         money desc

. Это позволяет упорядочить оставшиеся валюты в порядке убывания.Это побочный продукт.Если вы хотите, чтобы они были случайными:

order by (currency = 'EUR') desc,
         (case when currency = 'EUR' then money end) desc,
         rand()

Но это похоже на излишество.

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