我有如下数据
ID COUNT COL1 COL_CLOB
12345 5 a (HUGE_CLOB)
12345 8 b (HUGE_CLOB)
我想要像下面这样的输出
ID a_count a_COL_CLOB b_COUNT b_COL_CLOB
12345 5 (HUGE_CLOB) 8 (HUGE_CLOB)
我在我的查询中使用xmlagg,因为COL_CLOB的大小超过4000个字符,而listagg不支持这一点,pivot不支持聚合CLOB列。请告知
2条答案
按热度按时间6yjfywim1#
您可以定义自己的函数来聚合
CLOB
值:然后,对于样本数据:
然后,您可以使用条件聚合:
其输出:
axkjgtzd2#
也许它不是那么优雅,但它有时对我有用,当我面对CLOB列,超过4000个标志。最大的问题是我们不能使用组函数,但是这个查询可以是一个备用的方法。
或者更复杂的方式,如果你需要从更复杂的子查询中提取数据,而不仅仅是一个表(但在下面的例子中,我仍然只使用一个表来简化例子)。或者,除了“a”和“B”,我们可以找到字母表中的所有其他字母,但我们只需要“a”和“B”。同时,该列不是索引的一部分。然后,重用所选数据可能是有意义的。