Oracle sql:只获取子字符串的特定部分

前端之家收集整理的这篇文章主要介绍了Oracle sql:只获取子字符串的特定部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力解决Oracle sql中的查询问题,希望从存储在Oracle数据库中的某些文本中获得一些时间.
  1. Table :
  2. kde_test (myString varchar(50))
  3.  
  4. Table contents (3 records):
  5. 'task1 - 6m'
  6. 'task2 - 66m'
  7. 'task3 - 666m'
@H_403_3@我想只得到弦乐的有趣部分,作为时间,所以我想只得到’6′,’66’和… ‘666’作为结果.

@H_403_3@搜索了一下这个论坛,并最终得到了这个查询,但似乎我没有完全得到它,因为它返回的结果是:@H_502_6@6米@H_502_6@66米@H_502_6@666米

  1. select
  2. CASE
  3. WHEN myString like 'task1%' THEN substr(myString,9,INSTR(myString,'m',1,1)-1)
  4. WHEN myString like 'task2%' THEN substr(myString,1)-1)
  5. WHEN myString like 'task3%' THEN substr(myString,1)-1)
  6. END
  7. from kde_test
  8. where myString like 'task%'
@H_403_3@编辑:

@H_403_3@由于一些解决方案(感谢已经快速响应)考虑了具体的值(例如,所有3条记录以’6m’结尾),也许最好考虑这些值可能是:

  1. Table contents (3 records):
  2. 'task1 - 6m'
  3. 'task2 - 58m'
  4. 'task3 - 123m'
你也可以用这种方式
  1. select regexp_replace(SUBSTR('task3 - 666m',INSTR('task3 - 666m','-',1)+1,length('task3 - 666m')),'[A-Za-z]')
  2. from dual
  3.  
  4.  
  5. result :666

猜你在找的Oracle相关文章