对于(不工作)示例:
SELECT NEXTVAL
FROM DUAL
CONNECT BY level <= COUNT('234234', '234235', '32523')
我希望它COUNT('234234', '234235', '32523')
会返回3
,因为有 3 个输入值。
我无法更改字符串'234234', '234235', '32523'
。它将总是像'nnn', 'nnn', 'nnn' ...
但是查询的其他部分可以完全更改
可能吗?
由于字符串是从应用程序开始输入的,因此很难显示示例。
类似于以下内容:
select length( regexp_replace('''234234'', ''234235'', ''32523''', '[^,]+','')) + 1 from dual
如果您实际上有一个字符串,则可以为此使用字符串函数。对于您的示例,这将返回元素的数量:
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