Sounds like they want the ability to return only allowed fields, which means the number of fields returned also has to be dynamic. This will work with 2 variables. Anything more than that will be getting confusing.
IF (selectField1 = true AND selectField2 = true) BEGIN SELECT Field1, Field2 FROM Table END ELSE IF (selectField1 = true) BEGIN SELECT Field1 FROM Table END ELSE IF (selectField2 = true) BEGIN SELECT Field2 FROM Table END
Dynamic SQL will help with multiples. This examples is assuming atleast 1 column is true.
DECLARE @sql varchar(MAX) SET @sql = 'SELECT ' IF (selectField1 = true) BEGIN SET @sql = @sql + 'Field1, ' END IF (selectField2 = true) BEGIN SET @sql = @sql + 'Field2, ' END ... -- DROP ', ' @sql = SUBSTRING(@sql, 1, LEN(@sql)-2) SET @sql = @sql + ' FROM Table' EXEC(@sql)