小编pul*_*cho的帖子

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

我正在努力解决Oracle SQL中的查询问题,希望从存储在Oracle数据库中的某些文本中获得一些时间.

Table :
kde_test (myString varchar(50))

Table contents (3 records):  
'task1 - 6m'
'task2 - 66m' 
'task3 - 666m'
Run Code Online (Sandbox Code Playgroud)

我想只得到字符串的有趣部分,作为时间,所以我想只得到'6','66'和'666'作为结果.

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

select
CASE
WHEN myString like 'task1%' THEN substr(myString,9,INSTR(myString,'m',1,1)-1)
WHEN myString like 'task2%' THEN substr(myString,9,INSTR(myString,'m',1,1)-1)
WHEN myString like 'task3%' THEN substr(myString,9,INSTR(myString,'m',1,1)-1)
END
from kde_test
where myString like 'task%'
Run Code Online (Sandbox Code Playgroud)

编辑:

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

Table contents (3 records):  
'task1 - 6m'
'task2 - 58m' 
'task3 - 123m'
Run Code Online (Sandbox Code Playgroud)

sql oracle substring

6
推荐指数
1
解决办法
1889
查看次数

标签 统计

oracle ×1

sql ×1

substring ×1