2013-04-26 204 views
0

對於(不工作),例如:如何計算輸入值

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

我想這COUNT('234234', '234235', '32523')將返回3因爲有3個輸入值。我不能更改字符串'234234', '234235', '32523'。它總是像'nnn', 'nnn', 'nnn' ...但查詢的其他部分可以完全更改

這可能嗎?

+0

如何的值( '234234', '234235', '32523')進入查詢:

的線沿線的東西嗎? – 2013-04-26 13:16:16

+0

@MarkBannister它是一些自動化系統。我無法更改 – VextoR 2013-04-26 13:16:59

+0

您可以修改您的問題以顯示查詢的哪些位可以更改以及哪些位由自動化系統提供? – 2013-04-26 13:19:14

回答

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 
+0

謝謝你的回答。但由於某些原因,字符串格式「234234」,「234235」,「32523」無法更改。所以它總是像''nnn','nnn'',我不能讓它像''nn,nn'' – VextoR 2013-04-26 13:20:28

+0

@VextoR。 。 。嵌入的單引號與邏輯無關。我只是想讓他們更清楚。 – 2013-04-26 13:22:30

+0

我嘗試這樣做:'SELECT NEXTVAL FROM DUAL CONNECT BY level <=(length('234234','234235','32523') - length('234234','234235','32523' ,'',''))+ 1'沒有運氣:'00909. 00000 - 「無效參數數量」' – VextoR 2013-04-26 13:25:18

1

因爲字符串是從應用開始飼料中,它使得如果難以展示一個例子。

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