Tabel Anda sepertinya tidak dalam bentuk normal pertama.
Alih-alih tiga kolom untuk Period0Id ke Period2Id Anda bisa memiliki kolom untuk PeriodIndex dengan nilai (0,1,2) dan satu kolom untuk PeriodId dan kemudian hanya akan menjadi WHERE PeriodIndex = @Check
Anda tidak dapat memilih kolom menggunakan interpolasi string dengan variabel saat Anda mencoba. Anda dapat menggunakan SQL dinamis untuk membuat SQL String secara dinamis. Atau cukup hardcode opsi jika semuanya memiliki tipe data yang sama.
Select ID,
Name,
StatusId = CASE @Check WHEN 0 THEN Period0Id
WHEN 1 THEN Period1Id
WHEN 2 THEN Period2Id
END
From mytable