2013-04-25 83 views
0

我的网站是一种字典。当搜索关键字时,我想查看“词”和“含义”列,并显示与单词或含义相匹配的所有内容。不同合并选择结果在mssql中保存每个结果的顺序

select count(id) words where word like @keyword or meaning like @keyword 
select * from words where word like @keyword or meaning like @keyword order by word 

但我想先显示匹配的单词,然后匹配意义。顺序不正确

当我把它们分开:

select count(id) words where word like @keyword 
select * from words where word like @keyword order by word 
select count(id) words where meaning like @keyword 
select * from words where meaning like @keyword order by word 

这种方式有重复

(当关键字字和意义相匹配),当我工会再次它们的顺序不会是正确的

这个怎么办?我需要计算不同的匹配结果+不同的匹配结果本身,但首先显示匹配的单词,然后匹配意义。

回答

1

使用case语句在ORDER BY子句来区分时,它的字上一场比赛:

select * 
from words 
where word like @keyword or meaning like @keyword 
order by 
     case when word like @keyword then 0 else 1 end 
     , word