Я пытался сделать ваше заявление короче
UPDATE VF_CasINV_Cost SET LeastOfThree =
(select coalesce(min(low), 0) from
(select market low where market > 0 union all
select wgtd where wgtd > 0 union all
select lifo where lifo > 0 union all select null) a
)
WHERE CalendarYear = 2010
Это доказывает, что работает
declare @t table (LeastOfThree int, market int, wgtd int, lifo int)
insert @t values (null, 1,2,0)
UPDATE @t SET LeastOfThree =
(select coalesce(min(low), 0) from
(select market low where market > 0 union all
select wgtd where wgtd > 0 union all
select lifo where lifo > 0 union all select null) a
)
select * from @t