只需要匹配出从Strike:开始往后第一个空格为止
时间: 2023-08-05 15:05:33 浏览: 33
你可以使用 SUBSTR 和 INSTR 函数配合完成字符串的截取。具体操作如下:
```
SELECT TRIM(SUBSTR('CallableSchedule:[|CALLSCH| (Notice1:""20130205"" Notice2:""20130205"" FromDate:""20130208"" ToDate:""20130208"" PutCall:""C"" Strike:1.0 )(Notice1:""20140205"" Notice2:""20140205"" FromDate:""20140210"" ToDate:""20140210"" PutCall:""C"" Strike:1.0 )', INSTR('CallableSchedule:[|CALLSCH| (Notice1:""20130205"" Notice2:""20130205"" FromDate:""20130208"" ToDate:""20130208"" PutCall:""C"" Strike:1.0 )', 'Strike:') + 7, INSTR('CallableSchedule:[|CALLSCH| (Notice1:""20130205"" Notice2:""20130205"" FromDate:""20130208"" ToDate:""20130208"" PutCall:""C"" Strike:1.0 )', ' ', INSTR('CallableSchedule:[|CALLSCH| (Notice1:""20130205"" Notice2:""20130205"" FromDate:""20130208"" ToDate:""20130208"" PutCall:""C"" Strike:1.0 )', 'Strike:'))) AS result FROM dual;
```
解析:
1. 使用 INSTR 函数获取字符串中 'Strike:' 和第一个空格的位置。
2. 使用 SUBSTR 函数获取子字符串,其中起始位置为 'Strike:' 的位置加上 7(即 'Strike:' 的长度),长度为第一个空格的位置减去 'Strike:' 的位置再减去 7。
3. 使用 TRIM 函数去除字符串两端的空格。
4. 在 SELECT 语句中使用 AS 子句将结果命名为 result。
执行以上 SQL 语句,得到的结果为:
```
1.0
```