By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
WITH foo(id,a, b, c, d) AS (
SELECT 1,NULL, NULL, NULL, NULL UNION
SELECT 2,NULL, NULL, NULL, 'd' UNION
SELECT 3,NULL, NULL, 'c', NULL UNION
SELECT 4,NULL, NULL, 'c', 'd' UNION
SELECT 5,NULL, 'b', NULL, NULL UNION
SELECT 6,NULL, 'b', NULL, 'd' UNION
SELECT 7,NULL, 'b', 'c', NULL UNION
SELECT 8,NULL, 'b', 'c', 'd' UNION
SELECT 9, 'a', NULL, NULL, NULL UNION
SELECT 10, 'a', NULL, NULL, 'd' UNION
SELECT 11, 'a', NULL, 'c', NULL UNION
SELECT 12, 'a', NULL, 'c', 'd' UNION
SELECT 13, 'a', 'b', NULL, NULL UNION
SELECT 14, 'a', 'b', NULL, 'd' UNION
SELECT 15, 'a', 'b', 'c', NULL UNION
SELECT 16, 'a', 'b', 'c', 'd'
)
SELECT foo.*, CONCAT_WS('; ', a, b, c, d) AS bar
FROM foo
ORDER BY id DESC;
id | a | b | c | d | bar |
---|---|---|---|---|---|
16 | a | b | c | d | a; b; c; d |
15 | a | b | c | null | a; b; c |
14 | a | b | null | d | a; b; d |
13 | a | b | null | null | a; b |
12 | a | null | c | d | a; c; d |
11 | a | null | c | null | a; c |
10 | a | null | null | d | a; d |
9 | a | null | null | null | a |
8 | null | b | c | d | b; c; d |
7 | null | b | c | null | b; c |
6 | null | b | null | d | b; d |
5 | null | b | null | null | b |
4 | null | null | c | d | c; d |
3 | null | null | c | null | c |
2 | null | null | null | d | d |
1 | null | null | null | null |