日期:2014-05-18 浏览次数:20427 次
declare @A表 table (字段1 varchar(2),字段2 varchar(3)) insert into @A表 select 'A1','aaa' union all select 'A2','bbb' declare @B表 table (字段1 varchar(2),字段2 varchar(5),字段3 int) insert into @B表 select 'A1','测试1',1000 union all select 'A2','测试2',500 --是不是这个意思? select a.字段1,b.字段2, case when a.字段2='aaa' then 字段3 else 0 end as 字段3 from @A表 a cross join @B表 b /* 字段1 字段2 字段3 ---- ----- ----------- A1 测试1 1000 A2 测试1 0 A1 测试2 500 A2 测试2 0 */
------解决方案--------------------
select b.字段1, b.字段2, (case b.字段1 when 'A1' then b.字段3 else 0) from b left join a where a.字段1=b.字段1 union select b.字段1, b.字段2, (case b.字段1 when 'A2' then b.字段3 else 0) from b left join a where a.字段1=b.字段1
------解决方案--------------------
应该是2楼说的
------解决方案--------------------
2楼结果也不对,能把查询条件说一下吗