Это быстрая настройка CTE данных в вопросе:
; with sourceData (Product, Category, Sales, SunAdj, NameDay)
as
(
select 'Meat', null, 1000, 3500, 'Sunday'
union select 'Fish', null, 1000, 3500, 'Wednesday'
union select 'Bakery', null, 1000, 3500, 'Friday'
)
...
и мы можем использовать его, чтобы показать, что ваше утверждение уже верно:
; with sourceData (Product, Category, Sales, SunAdj, NameDay)
as
(
select 'Meat', null, 1000, 3500, 'Sunday'
union select 'Fish', null, 1000, 3500, 'Wednesday'
union select 'Bakery', null, 1000, 3500, 'Friday'
)
select
Product, Category, Sales, SunAdj, NameDay,
CASE when NameDay = 'Sunday' then [sales]
else [SunAdj] end as AdjustedDays
from sourceData
Просто добавив небольшую ценность в мой ответ, вы можете добиться того же с помощью функции IIF
:
; with sourceData (Product, Category, Sales, SunAdj, NameDay)
as
(
select 'Meat', null, 1000, 3500, 'Sunday'
union select 'Fish', null, 1000, 3500, 'Wednesday'
union select 'Bakery', null, 1000, 3500, 'Friday'
)
select
Product, Category, Sales, SunAdj, NameDay, iif(NameDay='Sunday', SunAdj, Sales) AdjustedDays
from sourceData
Оба запроса дают одинаковый результат:
Product Category Sales SunAdj NameDay AdjustedDays
------- ----------- ----------- ----------- --------- ------------
Bakery NULL 1000 3500 Friday 1000
Fish NULL 1000 3500 Wednesday 1000
Meat NULL 1000 3500 Sunday 3500