Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在没有聚合的情况下实现轴心,这是可能的吗?_Sql_Pivot - Fatal编程技术网

Sql 如何在没有聚合的情况下实现轴心,这是可能的吗?

Sql 如何在没有聚合的情况下实现轴心,这是可能的吗?,sql,pivot,Sql,Pivot,我想按以下顺序重新排列表中的行和列。这可能吗?如何实现 这是我所期望的结果。我怎样才能做到这一点 如果您的每一行都有多个值,那么在没有聚合功能的情况下您希望得到什么? 如果每行只有一个值,那么使用sum、min、max或avg聚合函数就没有关系了。 像这样(在oracle中): 带示例的可执行版本: select row_id, 'C1', 'C2', 'C3' from (select 1 table_id, 'C1' Column_id, 1 Row_id, 20000 "v

我想按以下顺序重新排列表中的行和列。这可能吗?如何实现

这是我所期望的结果。我怎样才能做到这一点


如果您的每一行都有多个值,那么在没有聚合功能的情况下您希望得到什么?

如果每行只有一个值,那么使用sum、min、max或avg聚合函数就没有关系了。
像这样(在oracle中):

带示例的可执行版本:

select row_id, 'C1', 'C2', 'C3'
  from (select 1 table_id, 'C1' Column_id, 1 Row_id, 20000 "value"          from dual        union all
    select 1 table_id, 'C2' Column_id, 1 Row_id, 30000 "value"          from dual        union all
    select 1 table_id, 'C3' Column_id, 1 Row_id, 25000 "value"          from dual        union all
    select 1 table_id, 'C1' Column_id, 2 Row_id, 80200 "value"          from dual        union all
    select 1 table_id, 'C2' Column_id, 2 Row_id, 50000 "value"          from dual        union all
    select 1 table_id, 'C3' Column_id, 2 Row_id, 95000 "value" from dual) 
pivot(max("value") for column_id in('C1', 'C2','C3'))
编辑:我在没有编辑器的情况下编写了这篇文章&没有运行SQL。我希望你明白了

select row_id, 'C1', 'C2', 'C3'
  from (select 1 table_id, 'C1' Column_id, 1 Row_id, 20000 "value"          from dual        union all
    select 1 table_id, 'C2' Column_id, 1 Row_id, 30000 "value"          from dual        union all
    select 1 table_id, 'C3' Column_id, 1 Row_id, 25000 "value"          from dual        union all
    select 1 table_id, 'C1' Column_id, 2 Row_id, 80200 "value"          from dual        union all
    select 1 table_id, 'C2' Column_id, 2 Row_id, 50000 "value"          from dual        union all
    select 1 table_id, 'C3' Column_id, 2 Row_id, 95000 "value" from dual) 
pivot(max("value") for column_id in('C1', 'C2','C3'))
Select Row_ID,
     Min(Case DBColumnName When 'c1' Then Value End) c1,
     Min(Case DBColumnName When 'c2' Then Value End) c2,
     Min(Case DBColumnName When 'c3' Then Value End) c3
   From table
   Group By Row_ID