假设我有一个包含OR关系的多个条件的查询,如下所示:
SELECT * FROM TABLE WHERE (c1) OR (c2) OR (c3) OR ...
Run Code Online (Sandbox Code Playgroud)
我不希望根据他们满足的条件数来排序结果.这意味着满足c1和c2和c3的记录首先显示(3个条件),然后记录满足c1和c2,或c1和c3,或c2和c3(2个条件)以及满足c1或c2或c3的最终记录
创建一个如下所示的表达式:
( CASE WHEN c1 THEN 1 ELSE 0 END
+ CASE WHEN c2 THEN 1 ELSE 0 END
+ CASE WHEN c3 THEN 1 ELSE 0 END)
Run Code Online (Sandbox Code Playgroud)
它将为您提供当前记录满足的条件数.