【问题标题】:Breaking up a pivot style table in SQL在 SQL 中分解数据透视样式表
【发布时间】:2015-10-20 11:04:52
【问题描述】:

我有一个表,其中值保存在行级别,所以我的数据如下所示:

如您所见,有一个 C_KEY,然后有一个 C_Value,我想要做的是拆分我需要的 C_Key 值,因此它们成为列标题。 这是 SQL 中可能的操作吗?

谢谢,

【问题讨论】:

    标签: sql pivot


    【解决方案1】:

    这是我想出的解决方案,虽然我没有完全理解你的问题

    select C_PEWF_UUID, C_PE_UUID , 
    (case when C_KEY = 'languagingStatus' then C_Value end)as languagingStatus,
    (case when C_KEY = 'taskColour' then C_Value end)as taskColour,
    (case when C_KEY = 'progressPercent' then C_Value end)as progressPercent,
    (case when C_KEY = 'turnaroundType' then C_Value end)as turnaroundType
    from table_name;
    

    【讨论】:

    • 感谢 Raj,我想我问的问题很糟糕,但我也认为我已经通过子查询上的 LEFT JOIN 解决了​​这个问题。 SELECT C_PE_UUID, C_VALUE AS COLOR FROM T_PE_WF_ATTRIBUTES WHERE C_KEY = 'taskColour' AND C_VALUE = 'red' 这意味着对于我的主查询,我可以将 C_KEY 限制为仅 LanguageStatus 结果,然后在子查询中我可以返回仅红色的 taskColour 结果,其余为空。所以现在我的列标题将是 C_PE_UUID、C_VALUE、COLOR 但感谢您回复我。本
    【解决方案2】:
    SELECT C_KEY, C_VALUE FROM T_WORKFLOW WF
    
    LEFT JOIN (SELECT C_PE_UUID, C_VALUE AS COLOUR FROM T_WORKFLOW
               WHERE C_KEY = 'taskColour' AND C_VALUE = 'red') CL
        ON WF.C_PE_UUID=CL.C_PE_UUID
    

    这是我打破 C_KEY 值范围以在数据集中拥有自己的标题的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多