Uw tabel ziet eruit alsof deze niet in de eerste normale vorm is.
In plaats van drie kolommen voor Period0Id tot Period2Id zou je een kolom kunnen hebben voor PeriodIndex met waarden van (0,1,2) en een enkele kolom voor PeriodId en dan zou het gewoon een WHERE PeriodIndex = @Check
zijn
U kunt tijdens uw poging geen kolom selecteren met behulp van tekenreeksinterpolatie met een variabele. U kunt dynamische SQL gebruiken om de SQL-string dynamisch te maken. Of codeer de opties gewoon hard als ze allemaal hetzelfde datatype hebben.
Select ID,
Name,
StatusId = CASE @Check WHEN 0 THEN Period0Id
WHEN 1 THEN Period1Id
WHEN 2 THEN Period2Id
END
From mytable