Oracle sql:只获取子字符串的特定部分
发布时间:2020-12-12 16:23:44 所属栏目:百科 来源:网络整理
导读:我正在努力解决Oracle SQL中的查询问题,希望从存储在Oracle数据库中的某些文本中获得一些时间. Table :kde_test (myString varchar(50))Table contents (3 records): 'task1 - 6m''task2 - 66m' 'task3 - 666m' 我想只得到弦乐的有趣部分,作为时间,所以我想
我正在努力解决Oracle SQL中的查询问题,希望从存储在Oracle数据库中的某些文本中获得一些时间.
Table : kde_test (myString varchar(50)) Table contents (3 records): 'task1 - 6m' 'task2 - 66m' 'task3 - 666m' 我想只得到弦乐的有趣部分,作为时间,所以我想只得到’6′,’66’和… ‘666’作为结果. 搜索了一下这个论坛,并最终得到了这个查询,但似乎我没有完全得到它,因为它返回的结果是: select CASE WHEN myString like 'task1%' THEN substr(myString,9,INSTR(myString,'m',1,1)-1) WHEN myString like 'task2%' THEN substr(myString,1)-1) WHEN myString like 'task3%' THEN substr(myString,1)-1) END from kde_test where myString like 'task%' 编辑: 由于一些解决方案(感谢已经快速响应)考虑了具体的值(例如,所有3条记录以’6m’结尾),也许最好考虑这些值可能是: Table contents (3 records): 'task1 - 6m' 'task2 - 58m' 'task3 - 123m'你也可以用这种方式 select regexp_replace(SUBSTR('task3 - 666m',INSTR('task3 - 666m','-',1)+1,length('task3 - 666m')),'[A-Za-z]') from dual result :666 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |