HANA将多行转一行实现行转列

假设源表信息如下,可以看出这张表基本上是Key-Value的组合形式,然后通过option_id标识对应的键值对属于哪个对象。

这种表结构设计非常精巧,通用性比较强,但如果我们要拿出option_id为100的四个option的值就要select四次,假如实际select时可能还要关联多张表,实际上每次select是非常耗资源和时间的。

那么,如果能将多行转一列,只查询一次数据库是不是能节省一些时间呢?我们来验证一下。

假设源表的数据结构和测试数据如下。

HANA将多行转一行实现行转列

建一个模型,通过“计算列”的方式将行转换为多列。

HANA将多行转一行实现行转列
HANA将多行转一行实现行转列
HANA将多行转一行实现行转列
HANA将多行转一行实现行转列
HANA将多行转一行实现行转列
HANA将多行转一行实现行转列

最终视图中只暴露我们需要的列。

HANA将多行转一行实现行转列

最终查询SQL,假设PID为主键,则根据PID执行一次查询即可获取到所有字段值:

HANA将多行转一行实现行转列

对比一下,行转列前的查询。

HANA将多行转一行实现行转列

行转列之后查询。

HANA将多行转一行实现行转列
HANA将多行转一行实现行转列

果然只查询一次数据库要快很多的。

如若转载,请注明出处:https://www.gavindong.com/8168.html

微信沟通
2021年第二、三季度备考中,暂停更新博客。