I find the SQL parsing to be variable here ... there are a couple of options
[</>] button - adds 4-spaces to every line
(which don't display but make it annoying to re-edit)
``` (at start and end). Code block, auto-sense Language
```sql (at start, just ``` at end) force SQL parsing, note "sql" is case sensitive)
```text - plain text
[code] ... [/code] same code auto-sensing I think, but leaves out ALL blank lines
No formatting (e.g. highlight / bold / colour coding) is possible in Code Blocks, so no ability to draw O/Ps attention to a subtle change/aspect
``` test:
SELECT a.col1, a.col1,
COALESCE(col2_b, col2_c, col2_d) AS col2,
col1_b, col2_b, b_must_come_out,
col1_c, col2_c, c_must_come_out,
col1_d, col2_d, d_must_come_out
FROM @a a
LEFT OUTER JOIN (
SELECT
b.col1 AS col1_b, b.col2 AS col2_b,
b.must_come_out AS b_must_come_out,
c.col1 AS col1_c, c.col2 AS col2_c,
c.must_come_out AS c_must_come_out,
d.col1 AS col1_d, d.col2 AS col2_d,
d.must_come_out AS d_must_come_out
FROM @b b
FULL OUTER JOIN @c c ON c.col1 = b.col1 AND c.col2 = b.col2
FULL OUTER JOIN @d d ON d.col1 = COALESCE(b.col1, c.col1) AND d.col2 = COALESCE(b.col2, c.col2)
) AS lj1 ON a.col1 = COALESCE(col1_b, col1_c, col1_d)
```sql Test
SELECT a.col1, a.col1,
COALESCE(col2_b, col2_c, col2_d) AS col2,
col1_b, col2_b, b_must_come_out,
col1_c, col2_c, c_must_come_out,
col1_d, col2_d, d_must_come_out
FROM @a a
LEFT OUTER JOIN (
SELECT
b.col1 AS col1_b, b.col2 AS col2_b,
b.must_come_out AS b_must_come_out,
c.col1 AS col1_c, c.col2 AS col2_c,
c.must_come_out AS c_must_come_out,
d.col1 AS col1_d, d.col2 AS col2_d,
d.must_come_out AS d_must_come_out
FROM @b b
FULL OUTER JOIN @c c ON c.col1 = b.col1 AND c.col2 = b.col2
FULL OUTER JOIN @d d ON d.col1 = COALESCE(b.col1, c.col1) AND d.col2 = COALESCE(b.col2, c.col2)
) AS lj1 ON a.col1 = COALESCE(col1_b, col1_c, col1_d)
I can't see any difference, but I could have sworn that ```sql colour-coded ...
EDIT: Agghhhh ... markDown has swallowed a couple of ' characters
"I could have sworn that ```sql colour-coded"