Potrzebuję pomocy w pisaniu instrukcji case dla widoku. Tabela bazowa ma dwie kolumny, do których będę się odwoływać: "Etap" i "Tak".Warunkowa składnia instrukcji CASE
Jeśli kolumna Stage ma wartość 1, a kolumna YesNo ma wartość 1, potrzebuję instrukcji CASE, aby wyświetlić ją w widoku jako "No." Jeśli kolumna Stage ma wartość 1, a kolumna YesNo ma wartość 0, potrzebuję instrukcji CASE, aby wyświetlić ją w widoku jako "Yes". Jeśli kolumna Stage ma wartość 1, a kolumna YesNo ma wartość NULL, potrzebuję instrukcji CASE, aby wyświetlić ją w widoku jako NULL. Jeśli Etap jest inny niż 1, potrzebuję kolumny TakNo do wyświetlenia w widoku jako NULL.
To jest moja logika do tej pory, która moim zdaniem jest poprawna, ale kiedy próbuję ją uruchomić, dostaję błąd składniowy dotyczący słowa "AS". Jakieś sugestie?
CASE
WHEN a.Stage = 1 and a.YesorNo = 1 THEN 'No'
ELSE WHEN a.Stage = 1 and a.YesorNo = 0 THEN 'Yes'
END AS NewViewColumn
mogę tylko powiedz, że posiadanie kolumny "YesOrNo", gdzie 1 oznacza "Nie", powoduje, że trochę płaczę w środku. –
Sugeruję, abyś wziął pod uwagę komentarz Matta i naprawił schemat nazewnictwa/danych. Po pierwsze, w programowaniu jest (prawie?) Uniwersalnie prawdą, że 1 oznacza True, a 0 oznacza Fałsz. Odwracanie jest bardzo dziwne i sprawia, że kod jest znacznie trudniejszy do odczytania i zrozumienia. Po drugie, chociaż nie wspomniałeś swojej nazwy tabeli, "YesOrNo" nie jest bardzo dobrą nazwą kolumny, ponieważ jest to odpowiedź na pytanie, a nie atrybut. Lepszą nazwą byłoby 'IsDeleted' lub' NeedsExpressHandling' lub 'HasPermission' lub coś, co jest oczywiście True/False. – Pondlife