SQL ‘18107461111-001’取18107461111
时间: 2024-11-27 18:14:10 浏览: 5
ruoyi SQL Server-SQL资源
在SQL中,如果你有一个包含电话号码及其区号或其他附加信息的字符串格式,比如 '18107461111-001',想要提取单独的电话号码部分(在这个例子中是 '18107461111'),你可以使用字符串分割函数或者正则表达式。这里以几种常见的数据库为例:
1. **MySQL** (如果支持正则表达式):
```sql
SELECT SUBSTRING_INDEX('18107461111-001', '-', -1) AS phone_number;
```
这里假设 '-' 符号分隔了电话号码。
2. **SQL Server** (使用PATINDEX):
```sql
SELECT SUBSTRING('18107461111-001', PATINDEX('%-%[0-9]%', '18107461111-001'), LEN('18107461111-001')) AS phone_number;
```
3. **Oracle** (使用INSTR和SUBSTR):
```sql
SELECT SUBSTR('18107461111-001', INSTR('18107461111-001', '-') + 1, LENGTH('18107461111-001')) AS phone_number;
```
4. **PostgreSQL** (同样使用正则表达式):
```sql
SELECT SUBSTRING('18107461111-001' FROM '\d+') AS phone_number;
```
请注意,上述查询依赖于所用数据库对正则表达式的支持程度。如果只存在简单的模式匹配,可能更容易处理。
阅读全文