我是靠谱客的博主 健忘红酒,最近开发中收集的这篇文章主要介绍【原创】hive/mysq 字典表多字段替换事实表多字段,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数据详情:

事实表:其中多个字段是字典code。

字典表:两列,字典code、字典value。

需求:

现在将事实表的字典code转换成字典value。

案例数据准备:

CREATE TABLE test_value (
  id int,
  k1 varchar(20) DEFAULT NULL,
  k2 varchar(20) DEFAULT NULL,
  k3 varchar(20) DEFAULT NULL
);
CREATE TABLE test_key_value (
  ky varchar(20) DEFAULT NULL,
  val varchar(20) DEFAULT NULL
);

insert into test_value values (1,'a','b','c');
insert into test_value values (2,'d','e','f');
insert into test_value values (3,'g','h','i'); 

insert into test_key_value values ('a','1');
insert into test_key_value values ('b','2');
insert into test_key_value values ('c','3');
insert into test_key_value values ('d','4');
insert into test_key_value values ('e','5');
insert into test_key_value values ('f','6');
insert into test_key_value values ('g','7');
insert into test_key_value values ('h','8');
insert into test_key_value values ('i','9');

实现逻辑:

select id
      ,max(case when k.k1= v.ky then v.val end) v1
      ,max(case when k.k2= v.ky then v.val end) v2
      ,max(case when k.k3= v.ky then v.val end) v3
from test_value k
left join test_key_value v
on (k.k1=v.ky or k.k2=v.ky or k.k3 = v.ky)
group by id

PS:原创博客,转载请注明出处。

最后

以上就是健忘红酒为你收集整理的【原创】hive/mysq 字典表多字段替换事实表多字段的全部内容,希望文章能够帮你解决【原创】hive/mysq 字典表多字段替换事实表多字段所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部