È possibile farlo in un paio di modi.
Uno, è creare la query ed eseguirla.
SET @sql = 'SELECT ' + @columnName + ' FROM yourTable'
sp_executesql @sql
Se si opta per questo metodo, sii assolutamente sicuro di santificare il tuo input. Anche se sai che la tua applicazione fornirà solo nomi di colonne "reali", e se qualcuno troverà una crepa nella tua sicurezza ed è in grado di eseguire direttamente la SP? Quindi possono eseguire quasi tutto ciò che vogliono. Con SQL dinamico, sempre sempre, convalidare i parametri.
In alternativa, è possibile scrivere una dichiarazione CASE ...
SELECT
CASE @columnName
WHEN 'Col1' THEN Col1
WHEN 'Col2' THEN Col2
ELSE NULL
END as selectedColumn
FROM
yourTable
Questo è un po 'più lungo senza fiato, ma un bel po' più sicuro.
è possibile selezionare la risposta migliore a questa domanda, la prima risposta corrente è fuorviante. – ctbrown