SQL函数,字符串str是数字中文英文及标点符号混合,提取出其中18位数字部分
时间: 2024-10-23 12:15:19 浏览: 32
PHP字符串中特殊符号的过滤方法介绍
在SQL中,如果你有一个包含数字、中文、英文以及标点符号的字符串`str`,想要提取出其中的18位数字部分,可以使用正则表达式函数。例如,`REGEXP_EXTRACT`或`PATINDEX`函数(如果支持),配合`LIKE`操作符。这里是一个例子:
```sql
SELECT
SUBSTRING(str,
PATINDEX('%[0-9]{18}%', str) + PATINDEX('%[0-9]%', str),
LEN(str)) AS ExtractedDigits
FROM your_table;
```
或者
```sql
SELECT
REGEXP_EXTRACT(str, '(\b\d{18}\b)') AS ExtractedDigits
FROM your_table;
```
这两个查询都会返回第一个发现的18位数字串,如果字符串中存在多个这样的数字段落,它们只会提取第一个。
注意,这取决于具体的数据库系统,因为不是所有的SQL方言都支持`PATINDEX`或`REGEXP_EXTRACT`函数。如果你的系统不支持,可能需要寻找其他可行的解决方案。
阅读全文