回答

收藏

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

技术问答 技术问答 280 人阅读 | 0 人回复 | 2023-09-14

如何从此示例值获取子字符串:: j; b( H1 u# H* X6 t
john.abc_12341 e4 X2 w& Y0 C( R! n1 K% Z4 T" |% X& A! U
我希望它返回john.abc。因此,基本上,我们需要删除之后的所有信息_。
2 y) S6 K5 R' X! Y更多示例:1234_abc
. Z; T% b2 Z& Z9 t7 D1 U               
& N# ]: y3 ~+ A+ S8 C9 e解决方案:
* F7 G1 J: p4 N               
5 L0 h; k) Y) T; k; [
, X0 D% j6 H9 j4 `0 h/ b% j! ]; o% R" A3 \& u3 e1 u: S+ G
                您可以使用SUBSTR和INSTR:7 H) R9 r  f! G8 X# {2 G
select substr('john.abc_1234', 1, instr('john.abc_1234', '_') -1)
: c6 O3 g. s+ d7 ufrom dual
* O6 L2 d2 L$ X( W% @- Y0 c; e
5 k  I4 m0 d, v1 z4 z% D& L: K* O警告:只有在您的字符串中确实包含下划线的情况下,才能保证此方法有效8 C& F* S, J# K* c- x# k
9 _! y' f/ A# y: P( k0 U9 Z$ o3 m/ \
更新( y% ]$ }# U( V; q6 s8 O# o+ e" m
此外,如果从Oracle 10g开始运行,则可以采用Regex路径,该路径可以更强大地处理异常。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则