translate函数说明
TRANSLATE(expr, from_string, to_string)
from_string 与 to_string 以字符为单位,对应字符一一替换。
SQL> SELECT TRANSLATE('ab你好abcdefg', 'abcdefg', '1234567') AS NEW_STR FROM DUAL;
NEW_STR
-------------
12你好1234567
以字符为单位,对应字符一一替换。
替换规则:
a 1
b 2
你 你 不作替换 参数里没有,不做替换
好 好 不作替换
a 1
b 2
c 3
d 4
e 5
f 6
g 7
如果to_string为空则返回空值,第3个参数为空
SQL> SELECT TRANSLATE('ab你好abcdefg', 'abcdefg', '') AS NEW_STR FROM DUAL;
N
-
SQL>
会返回空值
问题一:替换掉字母
SELECT TRANSLATE('ab你好abcdefg', '1abcdefg', '1') AS NEW_STR FROM DUAL;
SQL> SELECT TRANSLATE('ab你好abcdefg', '1abcdefg', '1') AS NEW_STR FROM DUAL;
NEW_
----
你好
1 替换为 1
a 空
b 空
c 空
d 空
e 空
f 空
g 空
问题2 按数字字母混合字符串中的字母排序
SQL> CREATE OR REPLACE VIEW V
as
SELECT ename || ' ' || empno AS data FROM emp; 2 3
视图已创建。
SQL> set linesize 200
SQL> select * from v where rownum<=4;
DATA
---------------------------------------------------
SMITH 7369
ALLEN 7499
WARD 7521
JONES 7566
SQL> SQL>
SQL> SELECT data, translate(data, '-0123456789', '-') AS ename from v order by 2;
DATA ENAME
--------------------------------------------------- ------------------------------------------------------------------------------------------------------
ADAMS 7876 ADAMS
ALLEN 7499 ALLEN
BLAKE 7698 BLAKE
CLARK 7782 CLARK
FORD 7902 FORD
JAMES 7900 JAMES
JONES 7566 JONES
KING 7839 KING
MARTIN 7654 MARTIN
MILLER 7934 MILLER
SCOTT 7788 SCOTT
DATA ENAME
--------------------------------------------------- ------------------------------------------------------------------------------------------------------
SMITH 7369 SMITH
TURNER 7844 TURNER
WARD 7521 WARD
已选择14行。
CREATE OR REPLACE VIEW v AS
SELECT '-0' AS str FROM dual UNION ALL
SELECT '-123' AS str FROM dual UNION ALL
SELECT '-456' FROM dual UNION ALL
SELECT '-789' FROM dual UNION ALL
SELECT '-1.23' AS str FROM dual UNION ALL
SELECT '-.789' FROM dual UNION ALL
SELECT '-' FROM dual UNION ALL
SELECT '-123x' AS str FROM dual UNION ALL
SELECT '7-' FROM dual;
SQL> select * from v;
STR
-----
-0
-123
-456
-789
-1.23
-.789
-
-123x
7-
SELECT v.str, translate(str, '-0123456789', '-') AS str2
FROM v
/*要求返回结果中没有“-”及数据以外的字符*/
WHERE translate(str, '-0123456789', '-') = '-'
/*第一位是“-”,第二位任意,保证了返回结果长度大于2*/
AND str LIKE '-_%';
translate函数说明的更多相关文章
- translate函数
translate函数: select translate('ab23cd1', '.0123456789' || 'ab23cd1', '.0123456789') from dual 截图:
- oracle中的替换函数replace和translate函数
.translate 语法:TRANSLATE(char, from, to) 用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串. 若from比to字符串长,那么在from中比 ...
- oracle学习笔记:字符串替换 replace、regexp_replace、translate函数
1.replace 函数 语法:replace(char, search_string, replacement_string) --针对字符串替换 功能: 将char中的字符串替换. 当re ...
- Oracle translate 函数的用法, 以及和replace的区别
translate 是用来替换字符的函数 语法: translate(char, from_str,to_str) 其中,char是待处理的字符串. from_str是按顺序排列若干个要被替换 ...
- Python3:字符串的大小写和镜像字符串(swapcase()函数,chr(),ord(),translate()函数)
题目: 请编程实现字符串的转换:1. 将"adsdsfdndsdsdfsfdsdASDSDEDSFE18754"字符串大写变小写,小写变大写:2. 并且将字符串变为镜像字符串,例如 ...
- Oracle translate 函数
项目里要求对军人身份证特殊处理,只要数字位.本想用正则表达式,但是oracle9i不支持正则. 后来发现translate 可以实现功能. translate(string,from_str,to_s ...
- translate函数使用
SQL> select data,translate(data,'0123456789','##########') as num1, replace(translate(data,'01234 ...
- Oracle Replace()函数与translate()函数 替换函数
简要比较: replace 字符串级别的代替 如:SELECT REPLACE('accd','cd','ef') from dual; --> aefd translate 字符级别的代替 如 ...
- 【Oracle】translate函数用法解析
转自:https://blog.csdn.net/shwanglp/article/details/52814173 基本语法: translate(string,from_str,to_str); ...
随机推荐
- ubuntu下,thinkphp验证码不能用
首先安装gd库 使用apt-get方式为Ubuntu安装PHP+MYSQL+Apache 默认是没有GD库的 1.安装gd库 命令:sudo apt-get install php5-gd 2.给权限 ...
- Spring中Ioc容器的注入方式
1 通过setter方法注入 bean类: package com.test; public class UserServiceImplement implements IUserService { ...
- javaweb笔记6多个响应头以及 HttpServletResponse对象
1 常见的响应头 Location: http://www.it315.org/index.jsp 重定向的地址.配合302的状态码一起使用,实现重定向效果. Content-Type: te ...
- Linux网络配置相关
路由相关 #添加到主机的路由 route add -host 192.168.1.2 dev eth0 route add -host 192.168.1.2 gw 192.168.1.1 注1:添加 ...
- JavaScript 类私有方法的实现
一:将私有方法移出模块,因为模块内部的所有方法都是对外可见的. class Widget { foo (baz) { bar.call(this, baz); } // ... } function ...
- JavaScript兼容问题汇总[实时更新]
印象笔记链接地址:点我查看 遇到问题不断更新中-- [转载请注明出处-HTML5自由者]
- C++经典题目:有n个人围成一圈,顺序排号,然后数数进行淘汰的解法和一些思考
问题描述: 有n个人围成一圈,顺序排号.从第一个人开始报数(1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号. 分析: 首先由用户输入人数n,然后对这n个人进行编号[因为如果不编号的话 ...
- SOAP 简单对象访问协议
webService三要素 SOAP.WSDL(WebServicesDescriptionLanguage).UDDI(UniversalDescriptionDiscovery andIntegr ...
- Oracle11g主要服务程序
Oracle Orcl VSS Writer Service:Oracle对 VSS(卷影)的支持服务.Oracle卷映射拷贝写入服务VSS(Volume Shadow Copy Service)能够 ...
- OD: Shellcode / Exploit & DLL Trampolining
看到第五章了. 标题中 Dll Tramplining(跳板)名字是从如下地址找到的,写的很好: http://en.wikipedia.org/wiki/Buffer_overflow#The_ju ...