如何在SQL中使用映射表实现源表字段值替换并创建视图?
解决方案
可以通过两次关联映射表的方式,将源表的columnA和columnB分别替换为映射表中的new_value,创建目标视图View1。假设源表名为source_table,映射表名为mapping_table,SQL语句如下:
CREATE VIEW View1 AS SELECT m1.new_value AS columnA, m2.new_value AS columnB FROM source_table st JOIN mapping_table m1 ON st.columnA = m1.source_value JOIN mapping_table m2 ON st.columnB = m2.source_value;
说明
- 第一次关联映射表(别名
m1),匹配源表的columnA与映射表的source_value,获取对应的new_value作为视图的columnA。 - 第二次关联映射表(别名
m2),匹配源表的columnB与映射表的source_value,获取对应的new_value作为视图的columnB。 - 由于题目说明源表中所有值都能在映射表找到对应项,使用
INNER JOIN即可保证所有源表记录都能被转换。
内容的提问来源于stack exchange,提问作者Adam Dulson
相关产品推荐
相关产品推荐

