我想创建一个视图,并为每个不需要的函数的结果做一些数据处理。
在我的专栏第2栏中,我有:
我想做一些 unfst(col2,','),并为每个结果执行以下操作:
if length(col2) = 5 then treatment_1
else if length(col2) = 6 then treatment_2
表中的示例:
col1 col2
-------------------
D1 12345, 123456
D3 12345
D4 123456
预期结果进入视图(对col2中的每一行进行处理):
col1 col2
-------------------
D1 12345
D1 123456
D3 12345
D4 123456
答案 0 :(得分:1)
您可以使用regexp_split_to_table
将字符串拆分为多行:
select t1.col1
, case
when length(split.col2) > 5 then right(split.col2, 3)
else replace(split.col2, '123', '***')
end as col2
from Table1 t1
cross join
regexp_split_to_table(t1.col2, '\s*,\s*') split(col2)