WHERE 句でエイリアスを使用することはできません。式を繰り返す (乱雑) か、SELECT をサブクエリに入れてから、外側のクエリに WHERE 句を入れてください:
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
プレ>