Twój stół wygląda tak, jakby nie był w pierwszej normalnej formie.
Zamiast trzech kolumn dla Period0Id do Period2Id możesz mieć kolumnę dla PeriodIndex z wartościami (0,1,2) i pojedynczą kolumnę dla PeriodId i wtedy byłoby to po prostu WHERE PeriodIndex = @Check
Nie możesz wybrać kolumny za pomocą interpolacji ciągów ze zmienną podczas próby. Możesz użyć dynamicznego SQL do dynamicznego tworzenia ciągu SQL. Lub po prostu zakoduj opcje, jeśli wszystkie mają ten sam typ danych.
Select ID,
Name,
StatusId = CASE @Check WHEN 0 THEN Period0Id
WHEN 1 THEN Period1Id
WHEN 2 THEN Period2Id
END
From mytable