Ihre Tabelle sieht aus, als wäre sie nicht in der ersten Normalform.
Anstelle von drei Spalten für Period0Id bis Period2Id könnten Sie eine Spalte für PeriodIndex mit Werten von (0,1,2) und eine einzelne Spalte für PeriodId haben und dann wäre es nur ein WHERE PeriodIndex = @Check
Sie können keine Spalte auswählen, indem Sie eine Zeichenfolgeninterpolation mit einer Variablen verwenden, während Sie dies versuchen. Sie können dynamisches SQL verwenden, um die SQL-Zeichenfolge dynamisch zu erstellen. Oder codieren Sie die Optionen einfach fest, wenn sie alle den gleichen Datentyp haben.
Select ID,
Name,
StatusId = CASE @Check WHEN 0 THEN Period0Id
WHEN 1 THEN Period1Id
WHEN 2 THEN Period2Id
END
From mytable