gar*_*rry 2 sql t-sql sql-server excel sql-server-2008
我有一个如下所示的数据.任何想法如何在Excel或SQL中从宽格式转换为长格式.
ID TOTAL SCORE PLAYER
34543 12342 456 45
45632 34521 241 33
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
ID DATA_TYPE VALUE
34543 TOTAL 12342
34543 SCORE 34521
34543 PLAYER 45
45632 TOTAL 34521
45632 SCORE 241
45632 PLAYER 33
Run Code Online (Sandbox Code Playgroud)
我首选的univoting方法是使用apply:
select t.id, v.*
from t cross apply
(values ('TOTAL', total), ('SCORE', score), ('PLAYER', player)
) v(DATA_TYPE, VALUE);
Run Code Online (Sandbox Code Playgroud)
除了相当简洁之外,这是对横向连接的良好介绍.这是SQL中非常强大的构造,可用于许多其他目的(不同于UNPIVOT).它也只扫描一次表,因此效率更高UNION ALL.
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |