sql两个 instr的返回值作差
时间: 2023-08-30 08:06:46 浏览: 63
可以使用以下 SQL 语句计算两个 `INSTR` 函数的返回值作差:
```
SELECT INSTR('string1', 'i') - INSTR('string2', 'i') AS diff;
```
其中,`'string1'` 和 `'string2'` 分别为需要进行比较的两个字符串,`'i'` 为需要查找的字符,`diff` 则为返回值的差值。请注意,此计算方式仅适用于两个字符串中都存在需要查找的字符的情况,否则会返回错误或异常。
相关问题
oracle怎么看字符串包含几个
在Oracle数据库中,你可以使用`LENGTH()`函数或者`INSTR()`函数来检查字符串是否包含特定字符或者另一个字符串,并获取其中的子串长度。以下是两个常用的方法:
1. **使用LENGTH()函数**:
如果你想确定整个字符串的长度,可以使用`LENGTH(str)`,返回的是字符串str中的字符数(包括空格和特殊字符)。例如:
```sql
SELECT LENGTH('your_string') AS length FROM dual;
```
2. **使用INSTR()函数**:
`INSTR(str, substr)` 函数返回substr在str中第一次出现的位置,如果没找到则返回0。通过取其返回值与参数2之间的差,可以得到substr的长度。例如:
```sql
SELECT LENGTH(SYS.substr('your_string', 1, INSTR('your_string', 'target_string') - 1)) AS contained_length
FROM dual;
```
这里假设你要找的是'target_string'。
阅读全文