I am wondering why I cannot use variable column name like that:
declare @a as varchar; set @a=\'TEST\' select @a from x;
Thank you
Because it is not allowed.
Insted of this you could use dynamic sql query:
declare @a as varchar; set @a='TEST' exec ('select ' + @a + ' from x')