sql - 如何在字符之间选择一个字符串
问题描述
如果我的列(attribute9)包含该字段作为Pika~Chu~(040)-121-12334~pika78@pika.com
我如何提取值
contact = Pika Chu
phone_nbr = (040)-121-12334
email = pika78@pika.com
我写了这样的代码
regexp_replace(attribute9, '[^()[:digit:]- ]', '') phone_nbr,
regexp_substr (attribute9,'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}') email,
replace(SUBSTR (attribute9 ,0,(INSTR (attribute9 , '(', -1)) - 1),'~',' ') contact
在 phone_nbr 中,我也得到了电子邮件中的所有数字(即 78)。我怎样才能在值之间提取(〜,〜)
解决方案
您可以使用 和 的组合来实现它SUBSTR
,INSTR
如下所示:
SQL> SELECT 2 REPLACE(SUBSTR(STR, 1, INSTR(STR, '~(') - 1), '~', ' ') AS CONTACT, 3 SUBSTR(STR, INSTR(STR, '~(') + 1, INSTR(STR, '~', - 1) - INSTR(STR, '~(') - 1) AS PHONE_NBR, 4 SUBSTR(STR, INSTR(STR, '~', - 1) + 1) AS EMAIL 5 FROM 6 (SELECT 7 'Pika~Chu~(040)-121-12334~pika78@pika.com' AS STR 8 FROM DUAL); CONTACT PHONE_NBR EMAIL -------- --------------- --------------- Pika Chu (040)-121-12334 pika78@pika.com SQL>
干杯!!
推荐阅读
- java - 在嵌套的 java Spring 配置属性类中,可以使用父级的值来初始化子级吗?
- java - “E/RecyclerView:未连接适配器;跳过布局”
- python - 如何根据循环迭代创建一个新的数据框?
- node.js - 大多数 RESTFUL API 函数无法进行单元测试
- python - 我的 csv 文件中的文本被读取为原始字符串。它包含“it\'s”而不是它。我该如何清洁这个?
- django - Django:在模型级别而不是列级别应用验证器
- cypress - 赛普拉斯测试通过了单个表单输入字段,但忽略了以下输入字段
- python - 从嵌入列中的列表中提取元素
- python - 我的 python 气泵代码有什么问题?
- ios - 如何在 Swift 中向自定义 DateComponent 添加分钟