日期:2014-05-17  浏览次数:20489 次

求个sql语句,按照规则显示,
1.

最近面试遇到这么个题,求高手指教。

要求查询name或者title中包涵 张三 或者 李四 的数据。并且把所有包含 张三 的信息放在前边,包含 李四的信息 放在后面 。。。


2.

此表中就一个字段,不是主键,要求查询出不连贯的数据 2 ,3, 5 ,7 ,9


求高手赐教,本菜鸟在此感谢了


------解决方案--------------------
1.
select * from tb
where titel like '%张三%'
or name like '%李四%'
union
select * from tb
where titel like '%李四%'
or name like '%李四%'

2. 没看懂
------解决方案--------------------
----------1
;with tb as(
select name ,title from 人员表 where name like '%张三%' or  name like '%李四%' or title like '%张三%' or title like '%李四%')
,tb1 as(
select name,title,case when   charindex('张三',name) >0 and charindex('张三',title) >0 then '1' 
when (charindex('张三',name) >0 and charindex('张三',title) =0) or(charindex('张三',name) =0 and charindex('张三',title) >0)
then '2' else 
'3' end as newc from tb)
select * from tb1 order by newc


---------------2
;with tb as(
select 1 as id1 
union all
select tb.id1+2 as id1 from tb where tb.id1 <100
)
select * from tb OPTION (MAXRECURSION 2000)


第2个你写错了吧 ? 1,3,5,7,9