如何修改这句SQL,急!!

sw1018518 2007-08-10 04:15:06
select b.* from R_jobsclass a, R_jobs b where b.zt=0 and (DATEDIFF(day, b.tjsj, GETDATE()) <=30) and ((b.Jobs like '%"&JobKey&"%' or b.Adcontent like '%"&JobKey&"%') or (a.Jobsname like '%"&JobKey&"%' and a.Jobscode=b.Selectedjob)) order by b.tjsj desc

显示结果是同一信息3000多条啊,我期望的是:
如果没有符合条件b.Jobs like '%"&JobKey&"%' or b.Adcontent like '%"&JobKey&"%'的时候则选用条件a.Jobsname like '%"&JobKey&"%' and a.Jobscode=b.Selectedjob

而结果就是符合以上条件的都一起按照order by b.tjsj desc显示出来!
...全文
145 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziping 2007-08-10
  • 打赏
  • 举报
回复
select b.* from R_jobsclass a, R_jobs b where b.zt=0 and (DATEDIFF(day, b.tjsj, GETDATE()) <=30) and ( case when (b.Jobs like '%"&JobKey&"%' or b.Adcontent like '%"&JobKey&"%') then true else (a.Jobsname like '%"&JobKey&"%' and a.Jobscode=b.Selectedjob) end) order by b.tjsj desc

用CASE吧

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧