oracle sql 去掉汉字保留数字或字母

本贴最后更新于 3017 天前,其中的信息可能已经渤澥桑田

一、语法 

TRANSLATE(string,from_str,to_str) 

二、用途 

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

三、transate 使用示例 


dw@dw>column col1 format a10 
dw@dw>column col2 format a10 
dw@dw>select translate('helloword',  'abcdefghijklmnopqrstuvwxyz',   'zyxwvutsrqponmlkjihgfedcba') col1,   translate('hbcadhlk',   'abcdefghijklmnopqrstuvwxyz',   '123456') col2  from dual; 


COL1       COL2 
---------- ---------- 
svooldliw  2314 

已选择 1 行。 

已用时间:  00: 00: 00.01 
我们在实际工作中,经常用到的去掉汉字保留数字或字母,也有可能是去掉数字或字母,保留汉字。 
本文将用oracle sql tranlsate函数实现去掉汉字、保留数字;去掉数字和母、保留汉字,本文所用到sql如下: 

create table oracle_extract_number ( 
id number, 
name varchar2(50) 
);

insert into oracle_extract_number(id,name) values(1,'32 提取汉字中 11222 的 333 数 44411 字 11');
insert into oracle_extract_number(id,name) values(1,'ad 提取汉字中 11dddfw222 的 3ddd33 数 444dd11 字 11');
insert into oracle_extract_number(id,name) values(1,'abd2 提取汉字中 11222 的 333 数 44ddd411 字 11');
insert into oracle_extract_number(id,name) values(1,'45 提取汉 233 字中 1ddd1222ddd 的 333 数 44411 字 11');
insert into oracle_extract_number(id,name) values(1,'78 提取汉字中 112SDD22 的 33ddad3 数 44ddfdf411 字 11');

commit;




1.用 oracle translate 去掉汉字和字母,提取数字 


dw@dw>select id,name,  translate(name, '#' ||   translate(name, '0123456789', '#'), '/') "oracle extract number"  from oracle_extract_number; 


        ID NAME                                               oracle extract number 
---------- -------------------------------------------------- ------------------------------ 
         1 32提取汉字中11222的333数44411字11                  32112223334441111 
         2 ad提取汉字中11dddfw222的3ddd33数444dd11字11        112223334441111 
         3 abd2提取汉字中11222的333数44ddd411字11             2112223334441111 
         4 45提取汉233字中1ddd1222ddd的333数44411字11         45233112223334441111 
         5 78提取汉字中112SDD22的33ddad3数44ddfdf411字11      78112223334441111 

已选择5行。 

已用时间:  00: 00: 00.03 
2.用oracle translate去掉汉字,提取数字和字母 
dw@dw>select id,name,   translate(name,'#'||  translate(name,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789','#')   ,'/')  "oracle extract number"   from oracle_extract_number; 


        ID NAME                                               oracle extract number 
---------- -------------------------------------------------- ------------------------------ 
         1 32提取汉字中11222的333数44411字11                  32112223334441111 
         2 ad提取汉字中11dddfw222的3ddd33数444dd11字11        ad11dddfw2223ddd33444dd1111 
         3 abd2提取汉字中11222的333数44ddd411字11             abd21122233344ddd41111 
         4 45提取汉233字中1ddd1222ddd的333数44411字11         452331ddd1222ddd3334441111 
         5 78提取汉字中112SDD22的33ddad3数44ddfdf411字11      78112SDD2233ddad344ddfdf41111 

已选择5行。 

已用时间:  00: 00: 00.00 
3.用oracle translate去掉数字和字母,提取汉字 

dw@dw>select id,  name,   translate(name,  '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',   '/') "oracle extract number"  from oracle_extract_number; 


        ID NAME                                               oracle extract number 
---------- -------------------------------------------------- --------------------------- 
         1 32提取汉字中11222的333数44411字11                  提取汉字中的数字 
         2 ad提取汉字中11dddfw222的3ddd33数444dd11字11        提取汉字中的数字 
         3 abd2提取汉字中11222的333数44ddd411字11             提取汉字中的数字 
         4 45提取汉233字中1ddd1222ddd的333数44411字11         提取汉字中的数字 
         5 78提取汉字中112SDD22的33ddad3数44ddfdf411字11      提取汉字中的数字 

已选择5行。 

已用时间:  00: 00: 00.01 
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 341 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    167 引用 • 597 回帖 • 1 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 452 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 688 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 2 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 184 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖 • 1 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 2 关注
  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖 • 1 关注
  • Access
    1 引用 • 3 回帖 • 3 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 255 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    172 引用 • 1546 回帖 • 2 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    32 引用 • 100 回帖
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 28 回帖 • 3 关注
  • 印象笔记
    3 引用 • 16 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 476 关注
  • 笔记

    好记性不如烂笔头。

    312 引用 • 794 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    187 引用 • 1021 回帖 • 1 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 16 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 92 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 611 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 13 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 186 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 618 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    225 引用 • 1623 回帖
  • Outlook
    1 引用 • 5 回帖