Oracle 使用translate 如何去除中文,单行函数 translate 的用法

单行函数 --> Translate

 举例,代码如下:

select translate('成龙ABC9TC', 'AC', '12') test from dual;

 结果如下:

 

剔除所有的数字

代码如下

select translate('成龙B12A2BC9T4C', 'a1234567890', 'a') from dual;

这里的 “a” 必须要有,否则数字会被替换为 “a”

剔除所有字母

代码如下:

select translate('成龙12A2BC9T4C',
                 '1qwertyuioplkjhgfdsazxcvbnm' || upper('1qwertyuioplkjhgfdsazxcvbnm'),
                 '1') test
  from dual;

结果如下:

同样的,这里所有的字母前的 “1” , 也是必须要有的

剔除所有的汉字

代码如下:

select translate(
          'adb123你好TUS90中国人',
          ' '||translate('adb123你好TUS90中国人',
                 '0123456789abcdefghijklmnopqrstuvwxyz'||upper('abcdefghijklmnopqrstuvwxyz'), ' '),
          ' '
       ) test
  from dual;

结果如下:

最后,值保留所有汉字

代码如下:

select translate('adb123TUS90中国人asasd123', 
                 ' 0123456789abcdefghijklmnopqrstuvwxyz'
                   ||upper('abcdefghijklmnopqrstuvwxyz'), 
                 ' ') test
  from dual;

执行结果如下:

注意:

根据Translate 函数的特性,我们也可以将此函数用作判断一个字段是否是纯数字,纯字母或纯中文;

只需要将转换前后的字段长度做对比,或者判断替换后长度是否为 0 就可以得到,这里不再赘述了。

 

在 Oracle 中,也可以使用正则表达式进行判断上述情形,请查看我的其他博客

^  - ^ ...

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值