DECLARE @X TINYINT = 0;WITH SampleTable AS (SELECT SOMECOLUMNS = 'SOMECOLUMNS', COLUMN1 = 'COLUMN1', COLUMN2 = 'COLUMN2', COLUMN3 = 'COLUMN3',COLUMN4 = 'COLUMN4', COLUMN5 = 'COLUMN5', COLUMN6 = 'COLUMN6')SELECT SOMECOLUMNS, x.*FROM SampleTableCROSS APPLY ( SELECT COLUMN1 = 'COLUMN1', COLUMN2 = 'COLUMN2', COLUMN3 = 'COLUMN3' WHERE @X = 1 UNION ALL SELECT COLUMN4, COLUMN5, COLUMN6 WHERE @X <> 1 ) x
If @x=1 Select column1, column2, column3 from MyTableElse Select column4, column5, column6 from MyTable
select case when @x = 1 THEN column1 else column4 end as col1,case when @x = 1 THEN column2 else column5 end as col2,case when @x = 1 THEN column3 else column6 end as col3from MyTable
DECLARE @X bit, @strSQL nvarchar(2000)SET @X = 1SET @strSQL =' SELECT ' + CASE WHEN @X = 1 THEN ' COLUMN1,COLUMN2,COLUMN3' ELSE ' COLUMN4,COLUMN5,COLUMN6' END + ' FROM TABLE1 ' EXEC (@strSQL)