1

最初のクエリがnullを返したときに2番目のクエリを実行する方法について誰かが光を当ててくれることを願っています。

select employee, date, workingrule
case when workingrule is null
then 1 else (select employeenumber, bonusrule from employeelist)
end
from employeedetails

基本的に、ワーキングルールが空白の場合、従業員のボーナスルールを見つけたいと思いました。ガイダンスの助けをいただければ幸いです。ありがとう

4

2 に答える 2

2

これは SQL Server で機能します (を使用しているためですisnullが、RDBMS 固有のクエリに変更することが可能です)。

select
   ed.employee, ed.date,
   isnull(ed.workingrule, el.bonusrule) as [rule]
from employeedetails as ed
    left outer join employeelist as el on el.employeenumber = ed.employeenumber 

または両方が必要な場合 (どの RDBMS でも機能するはずです):

select
   ed.employee, ed.date,
   ed.workingrule,
   case when ed.workingrule is null then '1' else el.bonusrule end as bonusrule
from employeedetails as ed
    left outer join employeelist as el on el.employeenumber = ed.employeenumber 
于 2013-09-02T14:04:47.290 に答える
0
select 
  employee, date, Coalesce(workingrule, BonusRule) as Rule 
from 
  employeedetails ed
  left join employeelist el on 
    el.employeenumber = ed.employeenumber 
于 2013-09-02T14:14:39.600 に答える