Vous ne pouvez pas utiliser l'alias dans la clause WHERE. Répétez l'expression (désordonnée) ou placez votre SELECT dans une sous-requête, puis placez la clause WHERE dans la requête externe :
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