首页 > 解决方案 > 在第二个逗号 Oracle / PL SQL 后删除字符串

问题描述

我有这个值 '45465,6464,654' 我想删除它之后的第二个逗号和字符串。所以基本上我想要 ''45465,6464' 。我找到了一个解决方案,但它适用于 Mssql。如何对 Oracle 进行此查询,即使使用子字符串也无法做到。你能帮助我吗?

这适用于 MSSQL;

`声明@S varchar(20) = '45465@6464@654';

选择左(@S,charindex('@',@S,charindex('@',@S)+1)-1);`

标签: oracleplsqloracle-sqldeveloperplsqldeveloper

解决方案


您可以使用非常相似的东西:

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

推荐阅读