如何按匹配条件获取条目?
如果每个问题都有5个可能的答案,我如何获取条目并按照最佳匹配首先按某种百分比(比如60%)或仅按百分比失败的条目(40%)对它们进行排序)?
SELECT * FROM SurveyAnswers WHERE(A1 = 1 OR A2 = 2 OR A3 = 3 OR A4 = 4 ... )
不执行百分比检查。
使用的数据库是H2。
UserName(PK) A1 A2 A3 A4 A5
User1 1 2 1 4 5
User2 2 5 2 3 5
User3 3 2 1 4 5
所以,我想搜索标准A1 = 1,A2 = 2,A3 = 3,A4 = 4,A5 = 5,但当且仅当它符合至少60%的标准时才返回该条目。< / p>
返回的行应为User1和User3。用户1的答案匹配80%,User3的答案匹配60%
答案 0 :(得分:2)
如果您认为A1
的匹配为1
而A2
的匹配为2
,依此类推..请使用CASE EXPRESSION
:
SELECT t.userName
FROM YourTable t
WHERE (CASE WHEN t.A1 = 1 THEN 1 ELSE 0 END +
CASE WHEN t.A2 = 2 THEN 1 ELSE 0 END +
CASE WHEN t.A3 = 3 THEN 1 ELSE 0 END +
CASE WHEN t.A4 = 4 THEN 1 ELSE 0 END +
CASE WHEN t.A5 = 5 THEN 1 ELSE 0 END) >= 3