-- DDL и образец вставки данных, начало
DECLARE @tbl TABLE (A_18 INT, A_19 int, B_18 INT, B_19 INT, C_18 INT, C_19 INT);
INSERT @tbl ( A_18, A_19, B_18, B_19, C_18, C_19) VALUES
( 20, 50, 20, 50, 32, 54);
-- DDL и образец вставки данных, конец
SELECT * FROM @tbl;
-- Метод #1
SELECT 18 AS Age, A_18 AS A, B_18 AS B, C_18 AS C
FROM @tbl
UNION ALL
SELECT 19, A_19, B_19, C_19
FROM @tbl
ORDER BY Age;
-- Метод #2
SELECT v.*
FROM @tbl
CROSS APPLY (VALUES
(18, A_18, B_18, C_18),
(19, A_19, B_19, C_19)
) AS v(Age, A, B, C)
ORDER BY v.Age;
尝试以下两种适用于 MS SQL Server 的解决方案。
数据库表列名必须以字母开头。
SQL
结果