SQL 服务器通过将列映射为键值对来反透视数据

SQL Server Unpivot the data by mapping the columns as Key Value pairs

我需要映射两列中的值来映射值-

需要做UnPivot的原始数据截图:

示例-

S1 S1Date
S2 S2Date
S3 S3Date
S4 S4Date

数据-

Cricket      2018-04-07 20:45:22.387
FootBall     2018-04-08 20:45:22.387
TableTennis  2018-04-09 20:45:22.387
Badminton    2018-04-10 20:45:22.387

我尝试了 unpivot,但不确定如何映射多列。请协助。

我会使用 apply:

select v.*
from t cross apply
     (values (s1, s1date), (s2, s2date), (s3, s3date), (s4, s4date)) v(col, dte);

unpivot 做了一件非常具体的事情——我认为甚至不值得学习语法。另一方面,apply 是对横向连接的介绍,非常强大。 Unpivot 是开始了解它们的好方法。