我们需要根据另一列的值将一列拆分为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
我们正在使用oracle。
答案 0 :(得分:2)
我们可以通过基本的数据透视查询来实现:
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;
答案 1 :(得分:0)
SELECT GroupId, CASE WHEN DebitOrCredit = 'C' THEN value END AS Credit,
CASE WHEN DebitOrCredit = 'D' THEN value END AS Debit
FROM table_name
答案 2 :(得分:0)
尝试以下查询-:
select GroupId,[C] as Credit,[D] as Debit
from YOUR_TABLE_NAME
PIVOT
(
sum(value) for DebitOrCredit in ([C],[D])
)t
SQL Server