mardi 22 septembre 2015

Using a case statment to show certain columns in select statement

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

Aucun commentaire:

Enregistrer un commentaire