在我的數據庫oracle 10g中,我有一個包含引用的字段。拆分字符串的一部分的最大值
它存儲爲:名稱/年/月/號
新的電話號碼,在部分毫米/號找到了最大數量。
所以,現在,我有我的字符串的分割,讓我這個樣子str_array的列表:
str_array(名稱,YYYY,MM,號碼)我想
,與這個,找到最大數量,這對夫婦毫米/數量。
這可能嗎?
我能有這樣的事情:
SELECT MAX(split(reference, '/').lastPartOfArray) into nb
FROM table
where lastPartOfArray-1 = sysdate.month;
數據樣本:
Smith/2013/12/1
Smith/2013/11/1
Smith/2013/12/3
Jones/2013/12/6
Smith/2013/12/3
Jones/2013/11/7
由於我們是在本月12日,對這些數據的最大值必須在6給我到NB。
的數字部分,沒有限制,可以是1000,10000 ...
的部分瓊斯/ 2013並不重要的數字。但是一個月我不能擁有相同的號碼。
我的歉意,我不知道這是否可能,所以我試圖寫在查詢中我想要的。
這是可能的,還是應該在我的表格中創建多個字段(name/yyyy
,mm
,number
)?
編輯:VALEX答案和一些定製
select MAX(CAST(SUBSTR(num,INSTR(num,'/')+9,1000) as Int))
from T
where num like TO_CHAR(sysdate,'%/YYYY/MM/%')
所以這個,算上搜索第一次出現。
select MAX(CAST(SUBSTR(num,INSTR(num,'/',1 ,n)+1,1000) as Int))
from T
where num like TO_CHAR(sysdate,'%/YYYY/MM/%')
這發現了字符的出現。
這是一個有用的解決方案,在其他情況下。
你能發佈樣本數據和期望的結果嗎? –
儘管這種情況很可能在某種程度上可能,但你真的應該在你的表中分割你的值。意思是,爲每個值創建一個列! – Armunin
@JorgeCampos:添加一些數據樣本。 –