我有桌子
select * from table
返回的值是
login id | status_name | count
===============================
admin | open | 3
admin | closed | 5
test | inprogress | 10
test | open | 10
test | closed | 11
user1 | closed | 5
user1 | pending | 10
如何将这些数据从行转移到列?我要这样
login_id | open | closed | inprogress | pending
================================================
admin | 3 | 5 | 0 | 0
test | 10 | 10 | 10 | 0
user1 | 0 | 5 | 0 | 10
select login_id
, sum(case when status_name='open' then count end) open
, sum(case when status_name='closed' then count end) closed
, sum(case when status_name='inprogress' then count end) inprogress
, sum(case when status_name='pending' then count end) pending
from table
group by login_id
问题内容: 我有这种形式的查询返回值(查询返回超过50列)。 对于行值。我希望将这些详细信息转换为列并采用以下形状: 问题答案: 在纯 SQL中 ,它将需要大量编码,因为您将不得不手动放置 范围, 因为值和范围之间根本没有关系。如果存在关系,则可以使用 CASE 表达式并 动态 构建范围。 在 Oracle数据库11g第1版 及更高版本中,可以使用 UNPIVOT 上面,根据您的情况,您需要用现有
需要帮助以下从测试中选择col1、col2、split(col3); 任何regex或PL/SQL函数的想法都可以帮助实现这一点。
问题内容: 我有一个查询,该查询始终返回一行且包含 许多 列。我想将其转换为2列和多行。 原始结果: 我想要的是: 这可能吗? 编辑(澄清) 我正在寻找一种自动的方法。IE浏览器,我可以传递任何只返回1行的查询结果。 问题答案: 您正在使用Oracle 11g吗?您尝试过枢轴旋转还是取消枢轴旋转? 更多信息在这里。
问题内容: 我有一张像这样的桌子: 想要将其转换为: 在oracle中不使用此联合: 问题答案: 您可以尝试使用unpivot sqlfiddle:https ://dbfiddle.uk/ ? rdbms = oracle_11.2 & fiddle = b2105e1010b332ce5b702eba7bfa7f2d
是否将HQL查询转换为纯Oracle查询? 从表中选择* 谢谢Advane。
问题内容: 这是我的查询 ,列为nvarchar数据类型,为INT数据类型 表格如下 预期结果 在这里,我需要将输出从行转换为列,并找到总计并将其放置在每个范围的最后一列中。 问题答案: 您应该可以使用类似于以下内容的东西: 参见带有演示的SQL Fiddle