我正在尝试在Postgres中获得一个SQL查询,根据标准查询,我可以得到5个结果:
SELECT ... FROM ... WHERE ... LIMIT 5;
但是,如果我得到的结果少于5个,我想更改WHERE条件,但总共要保留5个结果(第一个条件+第二个条件)。
您有什么提示吗?
答案 0 :(得分:2)
您可以使用UNION ALL(或UNION,如果它满足您的要求)并按专门为设置行优先级而创建的虚拟数字列进行排序:
select 1 nr, col1, col2, ... from tablename where condition1
union all
select 2 nr, col1, col2, ... from tablename where condition2
union all
select 3 nr, col1, col2, ... from tablename where condition3
union all
............................
order by nr
limit 5