行列转换

Posted JeanWan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了行列转换相关的知识,希望对你有一定的参考价值。

行列转换,通常有2种方法,一是CASE WHEN/UNION;一是PIVOT/UNPIVOT。对于行值或列数不固定的情况,需要用动态SQL。

一. 行转列

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 --drop table RowToCol create  table  RowToCol ( ID        int , Code      varchar (10), Value     int ) Go insert  RowToCol select  1, 'Item1' ,1000  union  all select  1, 'Item2' ,1000  union  all select  1, 'Item3' ,500   union  all select  2, 'Item1' ,2000  union  all select  2, 'Item2' ,0     union  all select  3, 'Item1' ,1000  union  all select  3, 'Item3' ,500 GO select  from  RowToCol

要得到这样的结果:

ID Item1 Item2 Item3
1 1000 1000 500
2 2000 0 0
3 1000 0 500


1. CASE WHEN

在SQL Server 2000时,常用的写法,沿用至今。

(1) 静态

1 2 3 4 5 6 7 8 9 10 11 select  ID,      sum ( case  Code  when  'Item1'  then  Value  else  end as  Item1,      sum ( case  Code  when  'Item2'  then  Value  else  end as  Item2,      Pandas行列转换的4大技巧

pandas行列转换的4大技巧

一道SQL面试题——表行列数据转换(表转置)

SQL中PIVOT 行列转换

SQL四种方法实现行列转换超详细

SqlServer 行列转换

(c)2006-2024 SYSTEM All Rights Reserved IT常识