Я пишу запрос, в котором я хотел бы использовать вложенный оператор case. Я, вероятно, могу использовать функцию IF или даже объединение, но мне бы хотелось использовать оператор варианта использования. Тем не менее, написание других альтернатив ниже для других всегда приветствуется. Кроме того, если уже есть решение для этого, пожалуйста, направьте меня, я искал высоко и низко.
Мой запрос выглядит так:
CASE WHEN priceddate is not null then
Case when lunchname = 'Mac' then
when createddate < '2/28/2019' then 'discard'
when createddate between '2/29/2019' and '3/10/2019' then 'Sale'
when createddate > '3/10/2019' then 'Refrigerate' end
End
Case when lunchname = 'Spaghetti' then
when createddate ....
when createddate ..... end
End
Case when lunchname = 'Burger' then .....end
End
ELSE (the main else clause that goes with the main case statement
End as 'ProductLabel'
(Поскольку каждый элемент обеда имеет разные созданные даты для того, когда их нужно выбросить, когда они должны быть проданы и когда им нужно хранить в холодильнике. Этот сценарий полностью составлен. Я не мог использовать свои фактические данные, поэтому я произвел очень ОЧЕНЬ выдуманные данные. Таким образом, если вам интересно, почему данные кажутся фальшивыми, это так).
Мой вопрос сводится к; Могу ли я написать запрос, в котором у меня есть несколько вложенных операторов case перед основным предложением ELSE, и если да, то каков правильный путь. Прямо сейчас говорится, что «Выражение не-булева типа определено в контексте, где ожидается условие»