Váš stůl vypadá, že není v první normální podobě.
Místo tří sloupců pro Period0Id až Period2Id byste mohli mít sloupec pro PeriodIndex s hodnotami (0,1,2) a jeden sloupec pro PeriodId a pak by to bylo jen WHERE PeriodIndex = @Check
Nemůžete vybrat sloupec pomocí řetězcové interpolace s proměnnou, jak se pokoušíte. Dynamický SQL můžete použít k dynamickému vytvoření řetězce SQL. Nebo jednoduše pevně zakódujte možnosti, pokud mají všechny stejný datový typ.
Select ID,
Name,
StatusId = CASE @Check WHEN 0 THEN Period0Id
WHEN 1 THEN Period1Id
WHEN 2 THEN Period2Id
END
From mytable