Using a case statement to show certain columns in select statement
07:58 22 Sep 2015

Is there a way to do use a CASE statement to display certain columns in a select statement?

At the moment I'm using the following SQL to do this

BEGIN
IF( @ISUSERROLE = 1)
     SELECT 
    t       PONumber                      = [RAH_PONumber]
           ,RAType                       = rt.[RAT_Type]
           ,ChargeableAmount             = [RAH_ChargeableAmount]
     FROM [T_RA_Header] rh
     INNER JOIN dbo.T_RA_Type rt ON rt.RAT_ID = rh.[RAH_RAT_ID]
     INNER JOIN dbo.T_RA_Status rs ON rs.RAS_ID = rh.[RAH_RAS_ID]
     WHERE
          rh.RAH_RAI_ID = @RAI_ID
    
ELSE IF (@ISUSERROLE = 2)
      SELECT   
           PONumber                     = [RAH_PONumber]
          ,RANumber                     = [RAH_RANumber]
          ,RAType                       = rt.[RAT_Type]
          ,RAStatus                     = rs.RAS_Status
          ,RAUploadedBy                 = [RAH_UploadedByUserName]
          ,UploadedOn                   = [RAH_UploadedOn]
          ,ChargeableAmount             = [RAH_ChargeableAmount]

     FROM [T_RA_Header] rh
     INNER JOIN dbo.T_RA_Type rt
          ON rt.RAT_ID = rh.[RAH_RAT_ID]
     INNER JOIN dbo.T_RA_Status rs
          ON rs.RAS_ID = rh.[RAH_RAS_ID]
     WHERE
          rh.RAH_RAI_ID = @RAI_ID
END

From this is it possible to use a CASE statement? Or is what I have done the only way?

sql sql-server if-statement case