oracle - 在第二个逗号 Oracle / PL SQL 后删除字符串
问题描述
我有这个值 '45465,6464,654' 我想删除它之后的第二个逗号和字符串。所以基本上我想要 ''45465,6464' 。我找到了一个解决方案,但它适用于 Mssql。如何对 Oracle 进行此查询,即使使用子字符串也无法做到。你能帮助我吗?
这适用于 MSSQL;
`声明@S varchar(20) = '45465@6464@654';
选择左(@S,charindex('@',@S,charindex('@',@S)+1)-1);`
解决方案
您可以使用非常相似的东西:
WITH s AS (SELECT '45465@6464@654' s FROM dual)
SELECT SUBSTR(s,1,INSTR(s,'@',1,2)-1) FROM s
或者您可以使用正则表达式:
SELECT regexp_substr('45465@6464@654','([^@]*@)?[^@]*') from dual
推荐阅读
- android-studio - 制作项目,我在控制台上遇到项目配置异常
- python - 张量流中图像的有效加权和
- python - Python:AttributeError:Toplevel1 实例没有属性“Entry1”
- android - ArrayList 项目在 DialogFragment 中不受欢迎地重复
- mongodb - 我如何在我的收藏中插入本地文档?
- php - 单击该行中的按钮时,如何从 mysql 获取所有行的数据并将其作为变量存储在另一个 sript 文件中?
- java - 有没有办法将存储在 XML 中的值数组读取到类型化的 ArrayList 中?
- java - 访问第一级目录并获取每个目录Java的大小
- listview - 具有动态高度的 Flutter AlertDialog
- php - 当 $request->validate() 返回错误时使用会话消息重定向