アクセスコードをsql2008に変換しようとしていますが、sql2008がIIFステートメントをサポートしていないことがわかりました。クエリを書き直そうとしている2つの方法は、次のとおりです。構文を台無しにしていることがわかります。
select distinct (IIf(IsNull([dbo_TASK]![act_start_date])
,IIf(IsNull([dbo_TASK]![restart_date]),[dbo_TASK]![target_start_date],[dbo_TASK]![restart_date]),[dbo_TASK]![act_start_date]) AS [Estimated Start Date] from dbo.task
ATTEMPT1:
if dbo.task.act_start_date=null
then
if(dbo.task.restart_date=null)
then dbo.task.target_start_date
else dbo.task.restart_date
else dbo.task.act_start_date
ATTEMP2:
select (case when dbo.task.act_start=null then
(case when dbo.task.restart_date=null
then (dbo.task.target_start_date)
else dbo.task.restart_date
end)
else (dbo.task.act_start_date)
end) from dbo.task