一、语法
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
分享到:
相关推荐
`money_to_chinese()`函数是将数字转换为中文大写的函数,这在财务报表或对账单中很有用。例如: ```sql SELECT ssje, money_to_chinese(ssje) AS dx FROM ywdjb ``` 此外,还展示了如何根据条件查询和联接表,...
- **流行的SQL开发工具**:市场上有许多优秀的SQL开发工具,如MySQL Workbench、SQL Server Management Studio、Oracle SQL Developer等。这些工具提供了丰富的功能,帮助开发者更轻松地编写和测试SQL代码。 - **...
熟悉SQL语法和Oracle特有的特性,如PL/SQL编程,索引,触发器,视图等,对于通过Oracle考试至关重要。 以上是Oracle第一次考试中涉及的一些核心知识点,学习和掌握这些内容将对通过考试大有裨益。记得练习编写和...
Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...
本文将针对"Oracle常见1000问"中的部分知识点进行深入解析,主要涉及SQL语句优化和Oracle内部函数的使用。 首先,SQL语句优化是数据库性能的关键。在Oracle中,`/*+NOCACHE(TABLE)*/`提示用于指示Oracle在执行全表...
Oracle数据库中的单记录函数是SQL查询中非常实用的工具,它们用于处理单行数据,对字符串、数值等进行转换和操作。以下是一些常见的Oracle单记录函数及其详细说明,包括实例: 1. ASCII() 函数:这个函数返回指定...
例如,ASCII码54740对应汉字“赵”,而65则对应英文字母“A”。 #### 3. CONCAT - **功能**:连接两个字符串。 - **语法**:CONCAT(str1, str2) - **示例**: ```sql SQL> select concat('010-', '88888888')||' ...
### Oracle SQL 函数详解 #### 一、ASCII 函数 **功能:** ASCII函数用于返回一个字符对应的十进制数值。 **语法:** ```sql ASCII(char) ``` **示例:** ```sql SELECT ASCII('A') A, ASCII('a') a, ASCII('0') ...
对于包含汉字或其他双字节字符的字符串,LENGTH函数返回字符的实际数量。 **语法格式:** ```sql LENGTH(str) ``` **示例:** ```sql SELECT NAME, LENGTH(NAME), ADDR, LENGTH(ADDR), SAL, LENGTH(TO_CHAR(SAL)) ...
- 创建表:CREATE TABLE语句,表名、列名由字母、数字和下划线组成,需以字母开头,不能重复。 - 删除表:DROP TABLE语句。 - 更新表结构:ALTER TABLE语句,可添加或删除列。 3. 查询语法: - SELECT语句用于查询...
### Oracle100个常用函数知识点总结 #### 1. ASCII **功能**: 返回与指定的字符对应的十进制数值。 **语法**: ASCII(字符) **示例**: 使用ASCII函数查询字符'A'、'a'、空格以及NULL对应的ASCII码。 ```sql SQL> ...
1. **中文列名**:在SQL查询中,我们可以使用双引号(`"`)将列名包裹起来,使其可以显示为中文。例如,`"员工编号"`。 2. **筛选条件**:`WHERE`子句用于筛选满足特定条件的记录。例如,`WHERE sal > 1500`用来筛选...
Oracle 提供了一些字符串处理函数,如 INITCAP(首字母大写),TRIM、LTRIM 和 RTRIM(去除两侧空格)。还有一些特定的函数如 LPAD 和 RPAD 用于填充字符串。DUAL 是一个特殊的表,常用于测试简单查询。 日期和时间...
根据提供的文件信息,本文将详细介绍Oracle数据库中常用的函数及其应用场景,并通过示例代码进行演示,以便更好地理解这些函数的功能。 ### 1. ASCII ASCII函数返回一个字符的ASCII码值。例如,大写字母“A”的...
### ORACLE函数大全 #### INITCAP - 首字母大写 - **功能**:`INITCAP`函数用于将输入的字符串中每个单词的首字母转换为大写,其余字母转换为小写。 - **语法**:`INITCAP(字符串)` - **示例**: ```sql SQL> ...
在提供的"oracle+110个常用函数.doc"文件中,提到了一系列与查询相关的函数,这些函数在日常的SQL操作中非常实用。下面我们将逐一详细解释这些函数。 1. ASCII函数:ASCII函数用于返回一个字符的ASCII码值,即该...