IT界98新星
2018-11-06 02:40
采纳率: 70.6%
浏览 1.4k

oracle列转行问题 求一个简单的方法

图片说明

**有没有什么方法可以直接把中间两列变成行啊 **

不行的话
这是我在百度找的代码会报错提示 无效数字


SELECT T.COLUMN_NAME,
SUM(CASE T.COLUMN_NAME WHEN 'MORDERITEMID' THEN T.COMMENTS END) AS MORDERITEMID,
SUM(CASE T.COLUMN_NAME WHEN 'MORDERID' THEN T.COMMENTS END) AS MORDERID,
SUM(CASE T.COLUMN_NAME WHEN 'ORDERNO' THEN T.COMMENTS END) AS ORDERNO
FROM PLMBOMIMPORTCONFIG T GROUP BY column_name
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • qq_43627487 2018-11-07 01:08
    已采纳

    用max()代替sum()

    已采纳该答案
    打赏 评论
  • ainiburuqusi 2018-11-06 02:56

    大兄弟,pivot了解下。行转列专用函数。

    打赏 评论
  • 才沐木 2018-11-06 03:33

    一看字段COMMENTS就是字符串啊,怎么能用sum函数,搞笑吧

    打赏 评论
  • chinarealone 2018-11-06 05:41

    使用max()代替sum()即可

    打赏 评论
  • p312011150 2018-11-06 07:21

    vm_concat 函数 返回的是以逗号分割的行,然后再用regex_replace 函数把逗号替换成你需要的分隔符

    打赏 评论
  • Polar1s丶 2018-11-07 09:46

    oracle 11g之后提供了pivot和unpivot函数,用于进行行列转换。具体百度一下,有很多例子。字符串没法求和,不能用sum()。

    打赏 评论

相关推荐 更多相似问题