回答

收藏

使用数据透视表转换SQL表的形状

技术问答 技术问答 160 人阅读 | 0 人回复 | 2023-09-12

我有以下格式的数据存储在表格中, Y* i, _! c: l+ Z& g# F' P% \4 Z
BatchID              EntityChanged             ChangeValueEERS                  ABC                       DEFEERS                  ABCD                      XYZEERS                  Something                 SomeValueNew Batch             SomethingMore             GHI可显示在 EntityChanged列中值的列表有限,事先已知,没有空间。为了争论,让我们说这个列表是-7 ~7 S; t, [: B4 J: l
ABC,ABCD,something,somethingMore
5 v& l0 d) U' f& Y8 p6 H% f+ l: Q" e然后我想输出上面的数据集
8 i! o9 W$ a' e! A; N& }# pBatchID            ABC              ABCD            Something       SomethingMoreEERS               DEF              XYZ             SomeValue       NULL   New Batch          NULL             NULL            NULL            GHI使用Pivot,我只能走这么远。9 p4 g0 s6 ?- v& \7 c
有人能帮我按期分割这些数据吗?9 ]4 I& M3 N9 l  O
                                                                " P$ U( |8 _2 J, W
    解决方案:                                                               
8 Q9 C$ |9 x- N5 G+ s                                                                试试这个:7 [. ]5 j! P! f  h  R; g
SELECT BatchID,   MAX(CASE WHEN EntityChanged = 'ABC' THEN ChangeValue END) 'ABC',  MAX(CASE WHEN EntityChanged = 'ABCD' THEN ChangeValue END) 'ABCD',  MAX(CASE WHEN EntityChanged = 'Something' THEN ChangeValue END) 'Something',  MAX(CASE WHEN EntityChanged = 'SomethingMore' THEN ChangeValue END) 'SomethingMore'FROM YourTable t GROUP BY BatchID
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则