I’ve a View that has two SELECT statements returning data using UNION ALL.
SELECT column1, column2, column3, column4 FROM table1 UNION ALL SELECT column1, column2, column3, column4 FROM table2
So, all the columns in table1 are supposed to display data because column4=’A’. However, in table2, column2 should return blanks/null because column4=’B’. Keep in mind, column2 in table2 DOES contain data, but in the View, we only want to return blank/nulls.
Advertisement
Answer
You want something like this.? When Column4 is ‘B’ mask column2 as NULL or blanks. Using DECODE or even CASE WHEN can be used.
SELECT column1, column2, column3, column4 FROM table1 UNION ALL SELECT column1, DECODE(column4,'B',NULL,column2), column3, column4 FROM table2
Multiple Values:
SELECT column1, column2, column3, column4
FROM table1
UNION ALL
SELECT column1,
CASE WHEN column4 IN ('B','D','O','R'..) THEN
NULL
ELSE
column2
END,
column3,
column4
FROM table2