按数据名称将多列数据合并到不同的列中

时间:2015-08-24 09:36:05

标签: sql sql-server

我在一个表中有以下数据结构

Id      IdCrop1     NameCrop1   HaCrop1 IdCrop2 NameCrop2   HaCrop2 IdCrop3 NameCrop3   HaCrop3
20040   68          Tomato      65.00   54      Pepper      3.00    56      Cucumber    3.00
20041   54          Pepper      0.00    0       NULL        0.00    0       NULL        0.00
20042   54          Pepper      0.00    68      Tomato      0.00    0       NULL        0.00
20043   68          Tomato      30.00   54      Pepper      30.00   56      Cucumber    10.00
20044   68          Tomato      0.00    54      Pepper      0.00    0       NULL        0.00

我想将来自不同列的数据合并为每个产品/作物的1列。所以结果应该是这样的

Id      TomatoCrop1 HaCrop1 PepperCrop2 HaCrop2 NameCrop3   HaCrop3
20040   Tomato      65.00   Pepper      3.00    Cucumber    3.00
20041                       Pepper      0.00                0.00
20042   Tomato      0.00    Pepper      0.00                0.00
20043   Tomato      30.00   Pepper      30.00   Cucumber    10.00
20044   Tomato      0.00    Pepper      0.00                0.00

我认为PIVOT可能是一个解决方案,但是因为我在文档中读到它需要一个聚合函数,我认为所有可能性都会以我不想要的方式转换输出。

作为最后一个选项我在产品和ID(如60)中考虑临时表,然后手动合并......

欢迎提供帮助或建议!

由于

0 个答案:

没有答案