如何计算输入值

时间:2013-04-26 13:05:05

标签: sql oracle oracle10g

对于(不工作)示例:

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

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

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

有可能吗?

2 个答案:

答案 0 :(得分:1)

因为字符串是从应用程序开始输入的,所以如果很难显示示例。

有些事情:

select length( regexp_replace('''234234'', ''234235'', ''32523''', '[^,]+','')) + 1 from dual

答案 1 :(得分: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