对oracle中特定行中的特定列进行标记

时间:2014-08-20 00:19:26

标签: sql oracle

我有一个名为Constants的表,其中有一个名为“constant_value”的列,在此特定行上,我希望通过“,”对字符串进行标记,以便在IN子句中使用。

如何在oracle查询中执行此操作?

我发现我可以使用以下查询,但它不会返回所需的数据。我在这里做错了什么?

select regexp_substr(c.constant_value,'[^,]+', 1, level) 
from  connstants c where c.name='RELAX' 
connect by regexp_substr(c.constant_value, '[^,]+', 1, level) is not null;

1 个答案:

答案 0 :(得分:0)

所以你试图将行压缩成csv列表。这有什么好处:

select 
   rtrim (xmlagg (xmlelement (e, c.constant_value || ',')).extract ('//text()'), ',') the_list
from    connstants c 
where c.name='RELAX' ;

另见SYS_CONNECT_BY_PATH