22,206
社区成员
发帖
与我相关
我的任务
分享
and not exists(select 1 FROM MasterTable M,DealtailTable D on M.Npid=D.npid
WHERE D.Standard='B' AND D.PAY>90)
select M.* ,D.point FROM MasterTable M,DealtailTable D on M.Npid=D.npid
WHERE D.Standard='B' AND D.PAY>90
找不到记录时,才根据D.Standard='A'去找。--原来两种结果是互斥的!
select M.* ,D.point
FROM MasterTable M,DealtailTable D on M.Npid=D.npid
WHERE case when exists(select 1 FROM MasterTable M,DealtailTable D on M.Npid=D.npid WHERE D.Standard='B' AND D.PAY>90) then D.Standard='B' else D.Standard='A' end
--如果不行的话,得得用if else
select M.* ,D.point FROM MasterTable M,DealtailTable D on M.Npid=D.npid
WHERE D.Standard='B' AND D.PAY>90
union all
select M.* ,D.point
FROM MasterTable M,DealtailTable D on M.Npid=D.npid
WHERE D.Standard='A' and not exists(select 1 FROM MasterTable M,DealtailTable D on M.Npid=D.npid
WHERE D.Standard='B' AND D.PAY>90)