在SQL中将ROW值转换为列值

时间:2018-09-18 09:27:00

标签: sql sql-server sql-server-2008

SQL server 2008查询以将现有表下方的内容转换为预期输出

现有表

Name    Area    SubArea Value1  Value2  Value3  Value4  Value5  Value6
Sam     UK      UK      1       2       3               5       6

期望输出:

Name    Area    SubArea Value
Sam     UK      UK      1
Sam     UK      UK      2
Sam     UK      UK      3
Sam     UK      UK  
Sam     UK      UK      5
Sam     UK      UK      6

1 个答案:

答案 0 :(得分:3)

我会使用apply

select t.Name, t.Area, t.SubArea, tt.Value
from table t cross apply
     ( values (Value1), (Value2), (Value3), (Value4), (Value5), (Value6)
     ) tt(Value);