Reputation: 7
I have a table having 6 columns(A,B,C,D,E,F). If a fixed column, lets say D is not null, I want to fetch 3 columns D,E,F; else if D is null I want to fetch other 3 columns A,B,C.
Am trying to use this but not able to proceed.
SELECT
CASE WHEN D IS NOT NULL
THEN SELECT D, E, F
ELSE
SELECT A,B,C
END
FROM Mytable.
Any pointers?
Upvotes: 0
Views: 39
Reputation: 33381
Try this:
SELECT
CASE WHEN D IS NULL THEN A ELSE D END as C1,
CASE WHEN D IS NULL THEN B ELSE E END as C2,
CASE WHEN D IS NULL THEN C ELSE F END as C3
FROM tbl
Upvotes: 0
Reputation: 152594
You can do the check in each column:
SELECT
CASE WHEN D IS NOT NULL THEN D ELSE A END,
CASE WHEN D IS NOT NULL THEN E ELSE B END,
CASE WHEN D IS NOT NULL THEN F ELSE C END
FROM Mytable
or use a UNION
SELECT A,B,C
FROM Mytable
WHERE D IS NULL
UNION ALL
SELECT D,E,F
FROM Mytable
WHERE D IS NOT NULL
Upvotes: 3