一个字符串中只取数字(TRANSLATE,)

本文详细介绍了SQL中的Translate与Regexp_Replace函数的使用方法及案例。Translate函数用于替换字符串中的指定字符,而Regexp_Replace则用于通过正则表达式替换字符串中的模式。文章还通过具体实例展示了这两个函数的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.

select  translate('1212AB2323','0123456789'||'1212AB2323','0123456789') from dual;

TRANSLATE ( 'char' , 'from_string' , 'to_string' )

TRANSLATE返回将from_string中的每个字符替换为to_string中的相应字符以后的string。
TRANSLATE是REPLACE所提供的功能的一个超集。如果from_string比to_string长,那么在from_string中而不在to_string中的额外字符将从char中被删除,因为它们没有相应的替换字符。to_string不能为空。Oracle将空字符串解释为NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL。

举个例子

select translate('123abc','2dc','4e') from dual;

因为from_string和to_string的位置是一一对应的,2对应4,d对应e,c没有对应的值,所以c应该会被删除。
所以例子的字符里的2会替换为4,
d因为字符串里没有,所以不作替换,
c由于没有对应的替换字符,所以字符串里的c会被删除
那么可以得出,结果是
143ab

2.

select regexp_replace('23456ABC3-00=.,45','[^0-9]') from dual;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值