在第二个逗号 Oracle / PL SQL 后删除字符串
Posted
技术标签:
【中文标题】在第二个逗号 Oracle / PL SQL 后删除字符串【英文标题】:Remove string after second comma Oracle / PL SQL 【发布时间】:2020-09-30 12:35:47 【问题描述】:我有这个值 '45465,6464,654' 我想删除它后面的第二个逗号和字符串。所以基本上我想要 ''45465,6464' 。我找到了一个解决方案,但它适用于 Mssql。如何对 Oracle 进行此查询,即使使用子字符串也无法做到。你能帮帮我吗?
这适用于 MSSQL;
`声明@S varchar(20) = '45465@6464@654';
向左选择(@S, charindex('@', @S, charindex('@', @S)+1)-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
【讨论】:
非常感谢 Radagas81 :) 它有帮助。以上是关于在第二个逗号 Oracle / PL SQL 后删除字符串的主要内容,如果未能解决你的问题,请参考以下文章
请问如何在Oracle中截取第一个逗号和第二个逗号之间的字符串