HANA-列转行的几种方法(JOIN,GROUPING ID)

22 篇文章 2 订阅
5 篇文章 0 订阅

如左图为学生成绩表,先需要转换为右边的形式,需要将列中的学科转换到行中

在HANA进行以上步骤,有如下几种方法

 1.增加关联列,进行join,再通过计算列进行计算

创建科目表,并且增加关联列,为常数1,如下

   

 为学生成绩表增加关联列

 

 以上两个表根据字段one进行 join

定义计算列 mark,公式为

最后结果为下图,行转列成功

 

2.函数GROUPING_ID

利用GROUPING_ID函数,代码如下,可快速实现列转行

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HANA数据库中,要进行列转行的操作可以使用group_concat函数来实现。通过使用LEFT JOIN将两个表连接在一起,并使用group_concat函数将多行数据合并成一行,从而实现列转行的效果。例如,可以使用以下SQL查询语句实现列转行操作: SELECT u.name1, GROUP_CONCAT(r.rolename, ' ') FROM user1 u LEFT JOIN role r ON u.id = r.user_id GROUP BY u.name1; [3] 这个查询语句会将user1表和role表连接起来,然后根据u.name1进行分组,并使用group_concat函数将相同name1的多个rolename值合并成一个字符串。通过这种方式,可以将多个行转换为一行,实现列转行的效果。请注意,这种方法在处理大量数据时可能会有限制,因为默认的类型是varchar类型,长度限制为4000,超过这个长度会报错。所以在处理大量数据时需要注意这个限制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【HANA系列】SAP HANA行列转换](https://blog.csdn.net/ARICK2014/article/details/101639998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [数据库列转行函数](https://blog.csdn.net/JerryBal/article/details/81129364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Idan Lian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值