如何编写postgres条件SELECT查询?

时间:2018-10-17 20:10:30

标签: postgresql

我有一个包含3列的表。

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

我想

SELECT id WHERE name='foo'

在以下情况下:

  1. 如果approve为True,则返回一个(对于同一个名称,只有一个为true)

  2. 否则选择得分最高的那个

我一直在寻找IF ... ELSE,但甚至无法提出执行查询(尽管有一个有效的查询...)

如何为这种类型的查询设置查询命令?

1 个答案:

答案 0 :(得分:1)

在SQL中,通常可以通过定义正确的顺序和限制来使用某些逻辑:

select id
from my_table
where name = 'foo'
order by approve desc, score desc
limit 1