你在找这个
Cross Apply
方法:(首选)
SELECT ID, tc.Type, tc.Value1, tc.Value2, tc.Value3
FROM yourtable
CROSS apply (VALUES (ValueX1,ValueX2,ValueX3,'X'),
(ValueY1,ValueY2,ValueY3,'Y') )tc (Value1, Value2, Value3, Type)
UNION ALL
SELECT ID,type = 'X',ValueX1,ValueX2,ValueX3
FROM yourtable
UNION ALL
SELECT ID,'Y', ValueY1,ValueY2,ValueY3
FROM yourtable
ValueX1
和
ValueY1
隐式可转换或相同。剩下的一对也一样