Dit bord ser ud til, at det ikke er i første normal form.
I stedet for tre kolonner for Period0Id til Period2Id kunne du have en kolonne for PeriodIndex med værdierne (0,1,2) og en enkelt kolonne for PeriodId, og så ville det bare være en WHERE PeriodIndex = @Check
Du kan ikke vælge en kolonne ved hjælp af strenginterpolation med en variabel, mens du forsøger. Du kan bruge dynamisk SQL til at oprette SQL-strengen dynamisk. Eller bare hårdkode mulighederne, hvis de alle har den samme datatype.
Select ID,
Name,
StatusId = CASE @Check WHEN 0 THEN Period0Id
WHEN 1 THEN Period1Id
WHEN 2 THEN Period2Id
END
From mytable