0

对于(不工作)示例:

SELECT NEXTVAL
FROM DUAL
  CONNECT BY level <= COUNT('234234', '234235', '32523')

我希望它COUNT('234234', '234235', '32523')会返回3,因为有 3 个输入值。

我无法更改字符串'234234', '234235', '32523'。它将总是像'nnn', 'nnn', 'nnn' ...但是查询的其他部分可以完全更改

可能吗?

4

2 回答 2

1

由于字符串是从应用程序开始输入的,因此很难显示示例。

类似于以下内容:

select length( regexp_replace('''234234'', ''234235'', ''32523''', '[^,]+','')) + 1 from dual
于 2013-04-26T14:09:09.647 回答
0

如果您实际上有一个字符串,则可以为此使用字符串函数。对于您的示例,这将返回元素的数量:

select (length('234234, 234235, 32523') - length(replace('234234, 234235, 32523', ',', '')) + 1
from dual

如果您想在表格中使用它,为什么不这样做:

with t as (select '23434' as v from dual union all select '234235' from dual union all select '32523' from dual)
select count(*)
from t
于 2013-04-26T13:17:59.880 回答