Postgresql:按真OR子句的数量计算排名

Ber*_*ant 4 postgresql stored-procedures plpgsql ranking postgresql-9.1

我需要按照真实的OR子句的数量对PostgreSQL查询的结果进行排序/排序.例如,给出一个类似的查询

SELECT * FROM mytable WHERE cond1 OR cond2 OR cond3 ORDER BY rank DESC
Run Code Online (Sandbox Code Playgroud)

应根据已满足条件的数量对结果进行排名.此外,非常欢迎使用视图/存储过程解决此问题的方法!

Mic*_*uen 5

重复这些条件并添加它们:

SELECT * FROM mytable 
WHERE fld = 'A' OR fldB = CURRENT_DATE OR fldC = 7
ORDER BY
   (fld = 'A')::int + (fldB = CURRENT_DATE)::int + (fldC = 7)::int  
DESC
Run Code Online (Sandbox Code Playgroud)