oracle sql截取字符串PutCall:""C"" Strike:1.0 )中的Strike:1.0
时间: 2023-07-19 17:40:50 浏览: 221
你可以使用 SUBSTR 函数来截取字符串,具体操作如下:
```
SELECT SUBSTR('PutCall:""C"" Strike:1.0 )', INSTR('PutCall:""C"" Strike:1.0 )', 'Strike:') + 7, INSTR('PutCall:""C"" Strike:1.0 )', ')') - INSTR('PutCall:""C"" Strike:1.0 )', 'Strike:') - 7) AS result FROM dual;
```
解析:
1. 使用 INSTR 函数获取字符串中 'Strike:' 和 ')' 的位置。
2. 使用 SUBSTR 函数获取子字符串,其中起始位置为 'Strike:' 的位置加上 7(即 'Strike:' 的长度),长度为 ')' 的位置减去 'Strike:' 的位置再减去 7。
3. 在 SELECT 语句中使用 AS 子句将结果命名为 result。
执行以上 SQL 语句,得到的结果为:
```
1.0
```
相关问题
oracle sql截取clob字符串PutCall:""C"" Strike:1.0 )中的Strike:1.0
如果字符串是 CLOB 类型,可以使用 DBMS_LOB 包中的 SUBSTR 函数来截取。具体操作如下:
```
SELECT DBMS_LOB.SUBSTR('PutCall:""C"" Strike:1.0 )', INSTR('PutCall:""C"" Strike:1.0 )', 'Strike:') + 7, INSTR('PutCall:""C"" Strike:1.0 )', ')') - INSTR('PutCall:""C"" Strike:1.0 )', 'Strike:') - 7) AS result FROM dual;
```
解析:
1. 使用 INSTR 函数获取字符串中 'Strike:' 和 ')' 的位置。
2. 使用 DBMS_LOB.SUBSTR 函数获取子字符串,其中起始位置为 'Strike:' 的位置加上 7(即 'Strike:' 的长度),长度为 ')' 的位置减去 'Strike:' 的位置再减去 7。
3. 在 SELECT 语句中使用 AS 子句将结果命名为 result。
执行以上 SQL 语句,得到的结果为:
```
1.0
```
oracle sql 匹配clob字符串ToDate:""20180208"" PutCall:""C"" Strike:1.0 )(Notice1:""20140205"" Notice2:""20190205"" FromDate:""20190208""中的Strike:1.0
你可以使用Oracle的REGEXP_SUBSTR函数来匹配CLOB字符串中的Strike值。具体的正则表达式可以是:
`Strike:\s*\d+(\.\d+)?`
这个正则表达式匹配以Strike:开头,后面紧跟着0个或多个空格,然后是一个或多个数字,可以包含一个小数点和更多数字。在匹配到的字符串中,可以使用SUBSTR函数来提取Strike值。
完整的SQL语句如下:
```
SELECT SUBSTR(REGEXP_SUBSTR(clob_column, 'Strike:\s*\d+(\.\d+)?'), 8) AS Strike
FROM your_table
WHERE your_condition;
```
其中,clob_column是包含CLOB字符串的列名,your_table是包含该列的表名,your_condition是你的查询条件。这个SQL语句会返回匹配到的Strike值,如果没有匹配到,则返回空字符串。
阅读全文