oracle中怎么把行转变成列、列转变成行

时间:2022-12-07 10:31:17
比如
ID
1
2
3
4
5
转化成
1    2   3   4   5

不是放在一个单元格子里面的那种

9 个解决方案

#1


用decode或case when都可以

#2


引用 楼主 ghq1254544150 的回复:
比如
ID
1
2
3
4
5
转化成
1    2   3   4   5

不是放在一个单元格子里面的那种

oracle11G 新函数pivot / unpivot
你可以去网上看看

#4


用decode或case when的话有个数限制,而对于Oracle 11g 行列互换 pivot 和 unpivot 只能转化到了一个单元格子里面,我自己的想法是 oracle中怎么把行转变成列、列转变成行转化到 oracle中怎么把行转变成列、列转变成行

#5


引用 4 楼 ghq1254544150 的回复:
用decode或case when的话有个数限制,而对于Oracle 11g 行列互换 pivot 和 unpivot 只能转化到了一个单元格子里面,我自己的想法是 oracle中怎么把行转变成列、列转变成行转化到 oracle中怎么把行转变成列、列转变成行




SQL> select * from test;

        NN
----------
         1
         2
         3
         4
         5

SQL> select * from test
  2  pivot(
  3  sum(nn)
  4  for nn
  5  in(1,2,3,4,5)
  6  );

         1          2          3          4          5
---------- ---------- ---------- ---------- ----------
         1          2          3          4          5

#6




引用 3 楼 bw555 的回复:
Oracle 11g 行列互换 pivot 和 unpivot 说明



以前遇到这个问题的时候也专门研究了一下,行列互换 pivot 和 unpivot需要好好看下资料

#7


引用 5 楼 zlloct 的回复:
Quote: 引用 4 楼 ghq1254544150 的回复:

用decode或case when的话有个数限制,而对于Oracle 11g 行列互换 pivot 和 unpivot 只能转化到了一个单元格子里面,我自己的想法是 oracle中怎么把行转变成列、列转变成行转化到 oracle中怎么把行转变成列、列转变成行




SQL> select * from test;

        NN
----------
         1
         2
         3
         4
         5

SQL> select * from test
  2  pivot(
  3  sum(nn)
  4  for nn
  5  in(1,2,3,4,5)
  6  );

         1          2          3          4          5
---------- ---------- ---------- ---------- ----------
         1          2          3          4          5



如果在这个in里面的个数不定的情况下,可以用这种模型吗?

#8


引用 7 楼 ghq1254544150 的回复:
Quote: 引用 5 楼 zlloct 的回复:

Quote: 引用 4 楼 ghq1254544150 的回复:

用decode或case when的话有个数限制,而对于Oracle 11g 行列互换 pivot 和 unpivot 只能转化到了一个单元格子里面,我自己的想法是 oracle中怎么把行转变成列、列转变成行转化到 oracle中怎么把行转变成列、列转变成行




SQL> select * from test;

        NN
----------
         1
         2
         3
         4
         5

SQL> select * from test
  2  pivot(
  3  sum(nn)
  4  for nn
  5  in(1,2,3,4,5)
  6  );

         1          2          3          4          5
---------- ---------- ---------- ---------- ----------
         1          2          3          4          5



如果在这个in里面的个数不定的情况下,可以用这种模型吗?

个数不定不行啊

#9


该回复于2014-09-22 08:48:22被管理员删除

#1


用decode或case when都可以

#2


引用 楼主 ghq1254544150 的回复:
比如
ID
1
2
3
4
5
转化成
1    2   3   4   5

不是放在一个单元格子里面的那种

oracle11G 新函数pivot / unpivot
你可以去网上看看

#3


#4


用decode或case when的话有个数限制,而对于Oracle 11g 行列互换 pivot 和 unpivot 只能转化到了一个单元格子里面,我自己的想法是 oracle中怎么把行转变成列、列转变成行转化到 oracle中怎么把行转变成列、列转变成行

#5


引用 4 楼 ghq1254544150 的回复:
用decode或case when的话有个数限制,而对于Oracle 11g 行列互换 pivot 和 unpivot 只能转化到了一个单元格子里面,我自己的想法是 oracle中怎么把行转变成列、列转变成行转化到 oracle中怎么把行转变成列、列转变成行




SQL> select * from test;

        NN
----------
         1
         2
         3
         4
         5

SQL> select * from test
  2  pivot(
  3  sum(nn)
  4  for nn
  5  in(1,2,3,4,5)
  6  );

         1          2          3          4          5
---------- ---------- ---------- ---------- ----------
         1          2          3          4          5

#6




引用 3 楼 bw555 的回复:
Oracle 11g 行列互换 pivot 和 unpivot 说明



以前遇到这个问题的时候也专门研究了一下,行列互换 pivot 和 unpivot需要好好看下资料

#7


引用 5 楼 zlloct 的回复:
Quote: 引用 4 楼 ghq1254544150 的回复:

用decode或case when的话有个数限制,而对于Oracle 11g 行列互换 pivot 和 unpivot 只能转化到了一个单元格子里面,我自己的想法是 oracle中怎么把行转变成列、列转变成行转化到 oracle中怎么把行转变成列、列转变成行




SQL> select * from test;

        NN
----------
         1
         2
         3
         4
         5

SQL> select * from test
  2  pivot(
  3  sum(nn)
  4  for nn
  5  in(1,2,3,4,5)
  6  );

         1          2          3          4          5
---------- ---------- ---------- ---------- ----------
         1          2          3          4          5



如果在这个in里面的个数不定的情况下,可以用这种模型吗?

#8


引用 7 楼 ghq1254544150 的回复:
Quote: 引用 5 楼 zlloct 的回复:

Quote: 引用 4 楼 ghq1254544150 的回复:

用decode或case when的话有个数限制,而对于Oracle 11g 行列互换 pivot 和 unpivot 只能转化到了一个单元格子里面,我自己的想法是 oracle中怎么把行转变成列、列转变成行转化到 oracle中怎么把行转变成列、列转变成行




SQL> select * from test;

        NN
----------
         1
         2
         3
         4
         5

SQL> select * from test
  2  pivot(
  3  sum(nn)
  4  for nn
  5  in(1,2,3,4,5)
  6  );

         1          2          3          4          5
---------- ---------- ---------- ---------- ----------
         1          2          3          4          5



如果在这个in里面的个数不定的情况下,可以用这种模型吗?

个数不定不行啊

#9


该回复于2014-09-22 08:48:22被管理员删除