SQL条件拆分数据
我们需要根据另一列的值将一列拆分为2 一个更清楚的例子 表:SQL条件拆分数据,sql,oracle,Sql,Oracle,我们需要根据另一列的值将一列拆分为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。我们可以通过基本的pivot查询来实现这一点: SELECT GroupId,
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。我们可以通过基本的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;
请尝试以下查询-:
select GroupId,[C] as Credit,[D] as Debit
from YOUR_TABLE_NAME
PIVOT
(
sum(value) for DebitOrCredit in ([C],[D])
)t
SQL Server感谢您提供此代码片段,它可能会提供一些有限的即时帮助。通过展示为什么这是一个很好的问题解决方案,A将极大地提高它的长期价值,并将使它对未来有其他类似问题的读者更有用。请在你的回答中添加一些解释,包括你所做的假设。你为此做了哪些尝试???@IShubh我实际上不知道我可以尝试做些什么。或者如果这是可行的。蒂姆的回答完美地完成了任务。
select GroupId,[C] as Credit,[D] as Debit
from YOUR_TABLE_NAME
PIVOT
(
sum(value) for DebitOrCredit in ([C],[D])
)t