select ID ,name from talbe where 关键词1='计算机' or 关键词2='计算机'
select ID,name from t where (case 关键词1 when '计算机' then 排名1 else 0 end) +(case 关键词2 when '计算机' then 排名2 else 0 end) > 0order by (case 关键词1 when '计算机' then 排名1 else 0 end) +(case 关键词2 when '计算机' then 排名2 else 0 end) desc
select ID,name from table where 关键词1 = '计算机' or 关键词2 = '计算机' order by (case 关键词1 when '计算机' then 排名1 else 0) + (case 关键词2 when '计算机' then 排名2 else 0)
---测试 create table tb(ID int,name varchar(2), 关键词1 varchar(10), 排名1 varchar(1), 关键词2 varchar(10) , 排名2 varchar(1) ) insert tb values ( 1 , '王','计算机','1' ,' 英语' ,'2') insert tb values ( 2 , '李','数学','5' ,' 计算机' ,'3') insert tb values ( 3 , '张','化学','3' ,' 计算机' ,'2')select ID,name from tb order by (case 关键词1 when '计算机' then 排名1 else 0 end) +(case 关键词2 when '计算机' then 排名2 else 0 end) desc drop table tb--结果ID name ----------- ---- 1 王 2 李 3 张(所影响的行数为 3 行)
where (case 关键词1 when '计算机' then 排名1 else 0 end)
+(case 关键词2 when '计算机' then 排名2 else 0 end) > 0order by (case 关键词1 when '计算机' then 排名1 else 0 end)
+(case 关键词2 when '计算机' then 排名2 else 0 end) desc
from table
where 关键词1 = '计算机' or 关键词2 = '计算机'
order by (case 关键词1 when '计算机' then 排名1 else 0) +
(case 关键词2 when '计算机' then 排名2 else 0)
---测试
create table tb(ID int,name varchar(2), 关键词1 varchar(10), 排名1 varchar(1), 关键词2 varchar(10) , 排名2 varchar(1) )
insert tb values ( 1 , '王','计算机','1' ,' 英语' ,'2')
insert tb values ( 2 , '李','数学','5' ,' 计算机' ,'3')
insert tb values ( 3 , '张','化学','3' ,' 计算机' ,'2')select ID,name from tb
order by (case 关键词1 when '计算机' then 排名1 else 0 end)
+(case 关键词2 when '计算机' then 排名2 else 0 end) desc drop table tb--结果ID name
----------- ----
1 王
2 李
3 张(所影响的行数为 3 行)