首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求查询结果排序有关问题,多谢

2013-09-07 
求查询结果排序问题,谢谢select* from 表名where 字段like %a% or 字段like %b% or 字段like %c% A

求查询结果排序问题,谢谢

select  * from 表名  where 字段  like '%a%' or 字段  like '%b%' or 字段  like '%c%' 

A条件            B条件         C条件


只要满足条件之一就要显示出来。

另外显示顺序: 搜索结果排列
满足ABC
满足AB   AC
满足A
满足BC
满足B
满足C

[解决办法]

select 字段,xxx
from (
select  字段,'满足'+case when CHARINDEX('a',字段)>0 then 'A' else '' end+
case when CHARINDEX('b',字段)>0 then 'B' else '' end+
case when CHARINDEX('c',字段)>0 then 'C' else '' end as xxx
from 表名  
where 字段  like '%a%' or 字段  like '%b%' or 字段  like '%c%' 
)t
order by xxx

[解决办法]
try this,

select *
 from 表名
 where 字段 like '%a%' or 字段 like '%b%' or 字段 like '%c%'
 order by  
 case when 字段 like '%a%' and 字段 like '%b%' and 字段 like '%c%' then 1
      when (字段 like '%a%' and 字段 like '%b%') or (字段 like '%a%' and 字段 like '%c%') then 2
      when 字段 like '%a%' then 3
      when 字段 like '%b%' and 字段 like '%c%' then 4
      when 字段 like '%b%' then 5
      when 字段 like '%c%' then 6 end

热点排行