Nie możesz użyć aliasu w klauzuli WHERE. Powtórz wyrażenie (nieuporządkowany) lub umieść SELECT w podzapytaniu, a następnie umieść klauzulę WHERE w zewnętrznym zapytaniu:
SELECT Id, Name, City, State
FROM
(
SELECT
ID,
Name,
CASE T.N
WHEN 1 THEN City1
WHEN 2 THEN City2
WHEN 3 THEN City3
END AS City,
CASE T.N
WHEN 1 THEN State1
WHEN 2 THEN State2
WHEN 3 THEN State3
END AS State
FROM YourTable
CROSS JOIN (VALUES(1),(2),(3)) AS T(N)
) T1
WHERE City IS NOT NULL