【发布时间】:2014-08-26 20:20:37
【问题描述】:
我在表 temp_table1 中有一个 varchar 列 test_data,其中包含 csv 格式的数据。 示例数据 >
,1,2,3,
,14,18,
,3,4,
对于每个数字,另一个上都有一个映射字符串,例如 1="ABC",2="XYX" , 3="PQR" 数据库映射表temp_table2
有没有办法通过使用映射替换每个数字来显示数据 单条sql查询??
例如:**,1,2,3**, as **ABC,XYZ,PQR**
我尝试过使用 decode,regexp_replace 但找不到解决方案。
数据库:Oracle 11g。
【问题讨论】:
-
不要将逗号分隔的值存储在单个列中。规范化您的模型,您的问题将简化为一个简单(高效)的
JOIN操作。 -
@a_horse_with_no_name 但是这个字段在很多地方都是这样使用的。有什么办法可以用SQL代替吗?