Ditt bord ser ut att inte vara i första normala form.
Istället för tre kolumner för Period0Id till Period2Id kan du ha en kolumn för PeriodIndex med värden på (0,1,2) och en enda kolumn för PeriodId och då skulle det bara vara en WHERE PeriodIndex = @Check
Du kan inte välja en kolumn med stränginterpolation med en variabel när du försöker. Du kan använda dynamisk SQL för att skapa SQL-strängen dynamiskt. Eller helt enkelt hårdkoda alternativen om de alla har samma datatyp.
Select ID,
Name,
StatusId = CASE @Check WHEN 0 THEN Period0Id
WHEN 1 THEN Period1Id
WHEN 2 THEN Period2Id
END
From mytable