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

寵の児 提交于 2020-03-03 12:04:37

单行函数 --> 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 中,也可以使用正则表达式进行判断上述情形,请查看我的其他博客

^  - ^ ...

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!