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

A跟B关联查询

2012-12-16 
A和B关联查询有两个表A和B,两个表通过id关联,但是A中id的范围为1~38000,B中id范围为1~12000和50001~50230,

A和B关联查询
有两个表A和B,两个表通过id关联,但是A中id的范围为1~38000,B中id范围为1~12000和50001~50230,sql语句为select A.字段名,B.字段名 from A,B where A.id=B.id 现在想让查询B中50000以上记录的时候让B.id=B.id-20000,这个条件该怎么添加
[最优解释]

select *
from A inner join B on a.id=(case when b.id>50000 then b.id-20000 else b.id end)
[其他解释]
两个表先UNION all起来,然后再对结果集筛选
[其他解释]

引用:
select *
from A inner join B on a.id=(case when b.id>50000 then b.id-20000 else b.id end)

正解,我一直以为where子语句里面不能包含case  when ,刚才用了一下没问题

热点排行