Tbl1 Tbl2 Tbl3 Tbl4comp1 Null comp1 comp1comp2 comp2 comp2 comp2comp3 comp3 comp3 comp3comp4 comp4 comp4 Nullcomp5 Null Null Nullcomp6 Null comp6 comp6Null comp7 Null NullNull comp8 Null NullNull comp9 Null NullNull comp10 Null Null
SELECT COALESCE(t1.comp_name, t2.comp_name, t3.comp_name, t4.comp_name) AS comp_name, ...FROM dbo.Tbl1 t1FULL OUTER JOIN dbo.Tbl2 t2 ON t2.comp_name = t1.comp_nameFULL OUTER JOIN dbo.Tbl3 t3 ON t3.comp_name = t1.comp_nameFULL OUTER JOIN dbo.Tbl4 t4 ON t4.comp_name = t1.comp_name
DECLARE @T1 TABLE (comp_name VARCHAR(10))DECLARE @T2 TABLE (comp_name VARCHAR(10))DECLARE @T3 TABLE (comp_name VARCHAR(10))DECLARE @T4 TABLE (comp_name VARCHAR(10))INSERT INTO @T1SELECT 'comp1' UNION ALL SELECT 'comp2' UNION ALL SELECT 'comp3'UNION ALL SELECT 'comp4' UNION ALL SELECT 'comp5' UNION ALL SELECT 'comp6'INSERT INTO @T2SELECT 'comp2' UNION ALL SELECT 'comp3' UNION ALL SELECT 'comp4'UNION ALL SELECT 'comp7' UNION ALL SELECT 'comp8' UNION ALL SELECT 'comp9'UNION ALL SELECT 'comp10'INSERT INTO @T3SELECT 'comp1' UNION ALL SELECT 'comp2' UNION ALL SELECT 'comp3'UNION ALL SELECT 'comp4' UNION ALL SELECT 'comp6'INSERT INTO @T4SELECT 'comp1' UNION ALL SELECT 'comp2' UNION ALL SELECT 'comp3'UNION ALL SELECT 'comp6'--Tbl1 Tbl2 Tbl3 Tbl4--comp1 Null comp1 comp1--comp2 comp2 comp2 comp2--comp3 comp3 comp3 comp3--comp4 comp4 comp4 Null--comp5 Null Null Null--comp6 Null comp6 comp6--Null comp7 Null Null--Null comp8 Null Null--Null comp9 Null Null--Null comp10 Null Null;WITH AllComputers AS ( SELECT comp_name FROM @T1 UNION SELECT comp_name FROM @T2 UNION SELECT comp_name FROM @T3 UNION SELECT comp_name FROM @T4)SELECT a.comp_name ,T1=(SELECT comp_name FROM @T1 b WHERE a.comp_name = b.comp_name) ,T2=(SELECT comp_name FROM @T2 b WHERE a.comp_name = b.comp_name) ,T3=(SELECT comp_name FROM @T3 b WHERE a.comp_name = b.comp_name) ,T4=(SELECT comp_name FROM @T4 b WHERE a.comp_name = b.comp_name)FROM AllComputers aORDER BY CAST(STUFF(a.comp_name, 1, 4, '') AS INT)
;WITH AllComputers AS ( SELECT comp_name FROM @T1 UNION SELECT comp_name FROM @T2 UNION SELECT comp_name FROM @T3 UNION SELECT comp_name FROM @T4)SELECT a.comp_name ,T1=b.comp_name ,T2=c.comp_name ,T3=d.comp_name ,T4=e.comp_nameFROM AllComputers aOUTER APPLY (SELECT comp_name FROM @T1 b WHERE a.comp_name = b.comp_name) bOUTER APPLY (SELECT comp_name FROM @T2 b WHERE a.comp_name = b.comp_name) cOUTER APPLY (SELECT comp_name FROM @T3 b WHERE a.comp_name = b.comp_name) dOUTER APPLY (SELECT comp_name FROM @T4 b WHERE a.comp_name = b.comp_name) eORDER BY CAST(STUFF(a.comp_name, 1, 4, '') AS INT)