首页 > 解决方案 > SQL Server 透视多个字符串字段

问题描述

我正在 SQL Server 数据库中处理这种格式的一些数据:

[ID_1] | [ID_2] | [ID_3] | ... | [ID_n] | [Change Type (Str)] | [oldVal (Str)] | [newVal (Str)]
--------------------------------------------------------------------------------------------------
  w    |   x    |   y    |     |   z    |          A          |       "1"      |       "2"
  w    |   x    |   y    |     |   z    |          B          |       "5"      |       "20"
  a    |   b    |   c    |     |   d    |          A          |       "2"      |       "3"

每个项目都有一些识别字段,导致更改类型,其中两个更改(A,B)让我感兴趣。对于每种更改类型,都有一个旧值和一个新值。如果一个项目同时具有 A 和 B 类型的更改,则将生成两行。

我想旋转这些值,以便获得以下结果:

[ID_1] | [ID_2] | [ID_3] | ... | [ID_n] | [oldValA (Str)] | [newValA (Str)] | [oldValB (Str)] | [newValB (Str)]
----------------------------------------------------------------------------------------------------------------
  w    |   x    |   y    |     |   z    |         "1"     |       "2"       |       "5"       |       "20"   
  a    |   b    |   c    |     |   d    |         "2"     |       "3"       |       NULL      |       NULL

我找不到像这样旋转多个字符串字段的任何好的资源。

标签: sqlsql-serverpivot

解决方案


推荐阅读