SQL Server 2008 - Sentencias Case / If en la cláusula SELECT [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo realizo un IF ... LUEGO en un SQL SELECT? 25 respuestas

Tengo una consulta que se supone que debe ejecutarse así:

If(var = xyz) 
   SELECT col1, col2
ELSE IF(var = zyx)
   SELECT col2, col3
ELSE
   SELECT col7,col8

FROM 

.
.
.

¿Cómo logro esto en T-SQL sin escribir consultas separadas para cada cláusula? Actualmente lo estoy ejecutando como

IF (var = xyz) {
  Query1
}
ELSE IF (var = zyx) {
  Query2
}
ELSE {
  Query3
}

Eso es mucho código redundante solo para seleccionar diferentes columnas dependiendo de un valor. ¿Alguna alternativa?

Respuestas a la pregunta(6)

Su respuesta a la pregunta