`
aaron7524
  • 浏览: 64162 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多
一、语法
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',
  2                   'abcdefghijklmnopqrstuvwxyz',
  3                   'zyxwvutsrqponmlkjihgfedcba') col1,
  4         translate('hbcadhlk',
  5                   'abcdefghijklmnopqrstuvwxyz',
  6                   '123456') col2
  7  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,
  2         translate(name, '#' ||
  3           translate(name, '0123456789', '#'), '/') "oracle extract number"
  4    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,
  2  translate(name,'#'||
  3  translate(name,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789','#')
  4  ,'/')  "oracle extract number"
  5  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,
  2         name,
  3         translate(name,
  4                   '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
  5                   '/') "oracle extract number"
  6    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


本文来自iDB Stock:http://www.idb-stock.net/idb/2011/06/15/176.html
分享到:
评论

相关推荐

    Oracle去掉特殊字符的具体方法

    `money_to_chinese()`函数是将数字转换为中文大写的函数,这在财务报表或对账单中很有用。例如: ```sql SELECT ssje, money_to_chinese(ssje) AS dx FROM ywdjb ``` 此外,还展示了如何根据条件查询和联接表,...

    SQL 21日自学通(中文版).pdf

    - **流行的SQL开发工具**:市场上有许多优秀的SQL开发工具,如MySQL Workbench、SQL Server Management Studio、Oracle SQL Developer等。这些工具提供了丰富的功能,帮助开发者更轻松地编写和测试SQL代码。 - **...

    Oracle第一次考试

    熟悉SQL语法和Oracle特有的特性,如PL/SQL编程,索引,触发器,视图等,对于通过Oracle考试至关重要。 以上是Oracle第一次考试中涉及的一些核心知识点,学习和掌握这些内容将对通过考试大有裨益。记得练习编写和...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    oracle常见1000问

    本文将针对"Oracle常见1000问"中的部分知识点进行深入解析,主要涉及SQL语句优化和Oracle内部函数的使用。 首先,SQL语句优化是数据库性能的关键。在Oracle中,`/*+NOCACHE(TABLE)*/`提示用于指示Oracle在执行全表...

    oracle单记录函数大全(含实例)

    Oracle数据库中的单记录函数是SQL查询中非常实用的工具,它们用于处理单行数据,对字符串、数值等进行转换和操作。以下是一些常见的Oracle单记录函数及其详细说明,包括实例: 1. ASCII() 函数:这个函数返回指定...

    Oracle 110个常用函数

    例如,ASCII码54740对应汉字“赵”,而65则对应英文字母“A”。 #### 3. CONCAT - **功能**:连接两个字符串。 - **语法**:CONCAT(str1, str2) - **示例**: ```sql SQL> select concat('010-', '88888888')||' ...

    Oracle 函数

    ### Oracle SQL 函数详解 #### 一、ASCII 函数 **功能:** ASCII函数用于返回一个字符对应的十进制数值。 **语法:** ```sql ASCII(char) ``` **示例:** ```sql SELECT ASCII('A') A, ASCII('a') a, ASCII('0') ...

    Oracle 常用函数大全

    对于包含汉字或其他双字节字符的字符串,LENGTH函数返回字符的实际数量。 **语法格式:** ```sql LENGTH(str) ``` **示例:** ```sql SELECT NAME, LENGTH(NAME), ADDR, LENGTH(ADDR), SAL, LENGTH(TO_CHAR(SAL)) ...

    常用SQL语句和语法汇总

    - 创建表:CREATE TABLE语句,表名、列名由字母、数字和下划线组成,需以字母开头,不能重复。 - 删除表:DROP TABLE语句。 - 更新表结构:ALTER TABLE语句,可添加或删除列。 3. 查询语法: - SELECT语句用于查询...

    Oracle100个常用函数.docx

    ### Oracle100个常用函数知识点总结 #### 1. ASCII **功能**: 返回与指定的字符对应的十进制数值。 **语法**: ASCII(字符) **示例**: 使用ASCII函数查询字符'A'、'a'、空格以及NULL对应的ASCII码。 ```sql SQL> ...

    Oracle基础练习题及答案(基本查询).doc

    1. **中文列名**:在SQL查询中,我们可以使用双引号(`"`)将列名包裹起来,使其可以显示为中文。例如,`"员工编号"`。 2. **筛选条件**:`WHERE`子句用于筛选满足特定条件的记录。例如,`WHERE sal > 1500`用来筛选...

    java(oracle).pdf

    Oracle 提供了一些字符串处理函数,如 INITCAP(首字母大写),TRIM、LTRIM 和 RTRIM(去除两侧空格)。还有一些特定的函数如 LPAD 和 RPAD 用于填充字符串。DUAL 是一个特殊的表,常用于测试简单查询。 日期和时间...

    Oracle函数

    根据提供的文件信息,本文将详细介绍Oracle数据库中常用的函数及其应用场景,并通过示例代码进行演示,以便更好地理解这些函数的功能。 ### 1. ASCII ASCII函数返回一个字符的ASCII码值。例如,大写字母“A”的...

    Oracle常用函数总结

    Oracle数据库系统提供了丰富...这些函数在SQL查询、数据处理和报表生成中非常实用,能帮助数据库管理员和开发人员更高效地操作Oracle数据库中的数据。了解并熟练掌握这些函数,可以提升在数据库管理中的效率和准确性。

    ORACLE函数大全

    ### ORACLE函数大全 #### INITCAP - 首字母大写 - **功能**:`INITCAP`函数用于将输入的字符串中每个单词的首字母转换为大写,其余字母转换为小写。 - **语法**:`INITCAP(字符串)` - **示例**: ```sql SQL> ...

    oracle+110个常用函数.doc

    在提供的"oracle+110个常用函数.doc"文件中,提到了一系列与查询相关的函数,这些函数在日常的SQL操作中非常实用。下面我们将逐一详细解释这些函数。 1. ASCII函数:ASCII函数用于返回一个字符的ASCII码值,即该...

Global site tag (gtag.js) - Google Analytics