sql - 删除 PL/SQL 中特定字符后的所有字符

标签 sql oracle plsql oracle9i substr

这个问题在这里已经有了答案:





How to remove part of the string in oracle

(3 个回答)


1年前关闭。




如何从此示例值中获取子字符串:

 john.abc_1234

我要它返回 john.abc .所以基本上我们需要删除_之后的所有信息.

更多示例:1234_abc

最佳答案

您可以使用 SUBSTRINSTR :

select substr('john.abc_1234', 1, instr('john.abc_1234', '_') -1)
from dual

Warning: This is only guaranteed to work if your string actually has an underscore in it



更新

此外,如果您从 Oracle 10g 开始运行,您可以采用 Regex 路径,它可以更强大地处理异常。

以下是有关如何在 Oracle 中执行此操作的一些链接:
  • http://psoug.org/reference/regexp.html
  • http://psoug.org/snippet/Regular-Expressions--Regexp-Cheat-Sheet_856.htm
  • http://www.regular-expressions.info/oracle.html
  • 关于sql - 删除 PL/SQL 中特定字符后的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7717566/

    相关文章:

    SQL查询以查找交错的记录

    SQL 更新表

    oracle - Maximo:ASSET 表有重复索引?

    sql - 为什么 SQL 数据同步需要 SQL Server 本地数据库上的 Alter Database 权限?

    mysql - 从名称首字母相同的表中选择

    sql - 保存航路点和进行比较的最有效方法?

    sql - TOAD 脚本中的变量

    oracle - 无法引发应用程序错误消息

    mysql - 如何显示给定值之间的日期以及 MySQL 中的另一列

    mysql - 无法在 FROM 子句中为 UPDATE 指定目标表