问题描述
我的值是'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,'@',2)-1) FROM s
或者您可以使用正则表达式:
SELECT regexp_substr('45465@6464@654','([^@]*@)?[^@]*') from dual