我们有一个表集合,我们需要从中创建一个视图...视图中有30个列。一个(-the-)列使用listagg聚合其中一个表中的多个值...另一个列是另一个表中的BLOB。
一切都进展顺利,因为我一次创建了一列视图。添加listagg - 然后开始添加所有group-by列..当我添加BLOB列时,返回错误不一致的数据类型..期待 - 得到BLOB 。
所以,只是一个普遍的问题,...在listagg列的group-by列列表中有一个BLOB列会破坏整个事情吗?有没有办法只使用SQL来解决这个问题?
任何和所有的见解和建议表示赞赏。因为涉及多个表和许多列,所以我希望我能够很好地解释这种情况,以便在不尝试构建整个案例的情况下获得建议。
答案 0 :(得分:2)
您无法按LOB列进行分组。如果您从一个表中获取listagg然后想要从第二个表中选择信息,为什么不在进行连接之前先进行分组?
EG。类似的东西:
select t1.col1,
t1.col2,
t1.grouped_col3,
t2.blob_col
from (select col1,
col2,
listagg(col3, ',') within group (order by col4) grouped_col3
from first_table
group by col1, col2) t1
inner join t2 on (t1.col1 = t2.col1 and t1.col2 = t2.col2);