sql – 按最大条件匹配排序
发布时间:2020-05-24 12:05:18 所属栏目:MsSql 来源:互联网
导读:请帮我创建一个包含10’where’子句的选择查询,顺序应该是这样的: 结果应按大多数关键字(条件)匹配至最不匹配的顺序显示. 注意:所有10个条件都带有“OR”. 请帮我创建这个查询. 我正在使用ms-sql server 2005 喜欢: Select * from employee where empid in
|
请帮我创建一个包含10’where’子句的选择查询,顺序应该是这样的:
注意:所有10个条件都带有“OR”. 请帮我创建这个查询. 喜欢: 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 – GRANT特定角色ALTER访问特定表
- SQL – MS Access是否抑制插入的主键冲突?
- 关于sqlserver 2005 使用临时表的问题( Invalid object nam
- SQL LIKE,如何按加权发生次数排序结果?
- DB2死锁超时Sqlstate:40001,原因代码68是由于使用SQL从ser
- sql – 删除中的ROWLOCK的目的是什么时候应该使用它?
- SQLServer 2008 Merge语句的OUTPUT功能
- sql-server – SQL Server 2012和2014内存限制
- SQL Server 存储过程学习笔记一 关于存储过程
- sql – 列号以数字开头?
