在我的数据库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:添加一些数据样本。 –