The CASE
statement can be used as an equivalent of an IF.. THEN... ELSE...
statement. Not quite sure how you are wanting to select them as your question is unclear so here's a couple of suggestions.
To select a single column with a string representation of the conditional formatting:
SELECT
CASE
WHEN (TYPE IN ('MBUSA','SDSA','MDSA','PC') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN ID + ' ' + P_ID
WHEN ((TYPE = 'MSA') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN ID
WHEN (TYPE IN ('DSA','BUSA') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN ID + ' ' + P_ID
ELSE ''
END AS columnName
FROM
tableName
To select each into separate columns
SELECT
CASE
WHEN (TYPE IN ('MBUSA','SDSA','MDSA','PC') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN ID
WHEN ((TYPE = 'MSA') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN ID
WHEN (TYPE IN ('DSA','BUSA') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN ID
ELSE ''
END AS columnOneName
CASE
WHEN (TYPE IN ('MBUSA','SDSA','MDSA','PC') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN P_ID
WHEN ((TYPE = 'MSA') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN NULL
WHEN (TYPE IN ('DSA','BUSA') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN P_ID
ELSE ''
END AS columnTwoName
FROM
tableName
Though looking at the above (I've probably transcribed your logic incorrectly) there are three case statements when you could get away with 2:
CASE
WHEN (TYPE IN ('MBUSA','SDSA','MDSA','PC','DSA','BUSA') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN ID + ' ' + P_ID
WHEN ((TYPE = 'MSA') AND (FINAL_STATUS IN ('ACTIVE','EXECUTED'))
THEN ID
ELSE ''
END AS columnName
I know you've put a screenshot up now, but an SQL Fiddle would probably be more helpful or more detail so that table names etc. can be easily
Useful Links:
http://technet.microsoft.com/en-us/library/ms181765.aspx
SQL Case Statement Syntax?
http://blog.sqlauthority.com/2007/04/14/sql-server-case-statementexpression-examples-and-explanation/