我在使用split函数的结果时遇到问题。 以下查询有效,其中str_field是表my_table中的字符串字段。
select
*
from my_table,
(lateral flatten(input=>split(str_field, ',')));
当我尝试查询拆分的不同值时,出现错误:
无效的标识符“ str_field”
select
*
from my_table t,
(select distinct value from lateral flatten(input=>split(t.str_field, ',')));
如何交叉分割str_field的唯一值?我需要获取my_table的所有值,所以select *
是必须的(select distinct value
是不够的)
答案 0 :(得分:0)
要获得独特的价值,您需要执行以下操作
select distinct value from my_table,(lateral flatten(input=>split(str_field, ',')));
答案 1 :(得分:0)
使用CTE是可行的解决方案。因此,您的查询应如下所示:
with dist_mytbl as (
select
distinct value
from my_table,
(lateral flatten(input=>split(str_field, ','))))
select * from dist_mytbl;