gpt4 book ai didi

sql - 按最大条件匹配排序

转载 作者:行者123 更新时间:2023-12-04 05:34:50 25 4
gpt4 key购买 nike

请帮我创建一个包含 10 个“where”子句的选择查询,顺序应该是这样的:
结果应按大多数关键字(条件)匹配到最不匹配的顺序显示。

注意:所有 10 个条件都带有“或”。

请帮我创建这个查询。
我正在使用 ms-sql server 2005

喜欢:

Select *
from employee
where empid in (1,2,4,332,434)
or empname like 'raj%'
or city = 'jodhpur'
or salary >5000

在上面的查询中,所有匹配最大条件的记录应该在顶部,而不太匹配的条件记录应该在底部。

最佳答案

SELECT *
FROM (SELECT (CASE WHEN cond1 THEN 1 ELSE 0 END +
CASE WHEN cond2 THEN 1 ELSE 0 END +
CASE WHEN cond2 THEN 1 ELSE 0 END +
...
CASE WHEN cond10 THEN 1 ELSE 0 END
) AS numMatches,
other_columns...
FROM mytable
) xxx
WHERE numMatches > 0
ORDER BY numMatches DESC

关于sql - 按最大条件匹配排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3289095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com