代码之家  ›  专栏  ›  技术社区  ›  Tyvain

SQL条件拆分数据

  •  -2
  • Tyvain  · 技术社区  · 6 年前

    根据另一列的值,我们需要将一列拆分为2。

    一个更清楚的例子。

    表格:

    GroupId|value|DebitOrCredit
    1      |10   |C
    1      |15   |D
    2      |24   |D
    2      |65   |C
    

    GroupId|credit|debit
    1      |10    |15
    2      |65    |24
    

    我们在用甲骨文。

    3 回复  |  直到 6 年前
        1
  •  2
  •   Tim Biegeleisen    6 年前

    我们可以通过一个基本的pivot查询来完成此操作:

    SELECT
        GroupId,
        MAX(CASE WHEN DebitOrCredit = 'C' THEN value END) AS credit,
        MAX(CASE WHEN DebitOrCredit = 'D' THEN value END) AS debit
    FROM yourTable
    GROUP BY GroupId;
    
        2
  •  0
  •   akshay    6 年前
    SELECT GroupId, CASE WHEN DebitOrCredit = 'C' THEN value END AS Credit, 
    CASE WHEN DebitOrCredit = 'D' THEN value END AS Debit
    FROM table_name
    
        3
  •  0
  •   IShubh    6 年前

    尝试以下查询-:

    select GroupId,[C] as Credit,[D] as Debit
    from YOUR_TABLE_NAME
    PIVOT
    (
    sum(value) for DebitOrCredit in ([C],[D])
    )t
    

    SQL服务器