Как мне написать условный SELECT запрос postgres? - PullRequest
0 голосов
/ 17 октября 2018

У меня есть таблица с 3 столбцами.

id | name | score | approve
--------------------
1  | foo  |  90   |   f
2  | foo  |  80   |   t

Я хочу

SELECT id WHERE name='foo'

с этими условиями:

  1. еслиapprove равно True, затем верните это значение (только одно будет истинно для того же имени)

  2. в противном случае выберите тот, который имеет наивысший балл

Я смотрел на IF ... ELSE, но не могу даже придумать запрос, который выполняет (несмотря на работающий ...)

Как настроить команду запроса для этоготип запросов?

1 Ответ

0 голосов
/ 17 октября 2018

В SQL вы часто можете использовать некоторую логику, задав правильный порядок и предел:

select id
from my_table
where name = 'foo'
order by approve desc, score desc
limit 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...