SQL进阶六:字符串函数
Oracle字符串函数
这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.
除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.
字符函数的返回类型所受的限制和基本数据库类型所受的限制是相同的。
字符型变量存储的最大值:
VARCHAR2数值被限制为2000字符(ORACLE 8中为4000字符)
CHAR数值被限制为255字符(在ORACLE8中是2000)
long类型为2GB
Clob类型为4GB
1、CHR
语法: chr(x)
功能:返回在数据库字符集中与X拥有等价数值的字符。CHR和ASCII是一对反函数。经过CHR转换后的字符再经过ASCII转换又得到了原来的字
符。
例:select chr(65) from dual;--A
select ASCII('A') from dual;--65
2、CONCAT
语法: CONCAT(string1,string2)
功能:连接2个字符串
例:select concat('AA','BB') from dual;--AABB
select 'AA'||'BB' from dual;--AABB
3、INITCAP
语法:INITCAP(string)
功能:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的字符串。单词是用.或空格或给字母数字字符进行分隔。不是字母的
字符不变动。
例:select INITCAP('AABB') from dual;--Aabb
select INITCAP('AA BB') from dual;--Aa Bb
select INITCAP('AA.BB') from dual;--Aa Bb
4、LTRIM
语法:LTRIM(string1,string2)
功能:返回删除从左边算起出现在string2中的字符的string1。String2被缺省设置为单个的空格。数据库将扫描string1,从最左边开始。当
遇到不在string2中的第一个字符,结果就被返回了。LTRIM的行为方式与RTRIM很相似。
例:select LTRIM('2A2B12','A2') from dual;--B12
5、NLS_INITCAP
语法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每个单词第一个字母大写而单词中的其他字母小写的string,nlsparams
指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和INITCAP相同。Nlsparams可以使用的形式是:
‘NLS_SORT=sort’
这里sort制订了一个语言排序序列。
6、NLS_LOWER
语法:NLS_LOWER(string[,nlsparams])
功能:返回字符串中的所有字母都是小写形式的string。不是字母的字符不变。
Nlsparams参数的形式与用途和NLS_INITCAP中的nlsparams参数是相同的。如果nlsparams没有被包含,那么NLS_LOWER所作的处理和
LOWER相同。
7、NLS_UPPER
语法:nls_upper(string[,nlsparams])
功能:返回字符串中的所有字母都是大写的形式的string。不是字母的字符不变。nlsparams参数的形式与用途和NLS_INITCAP中的相同。如果
没有设定参数,则NLS_UPPER功能和UPPER相同。
8、REPLACE
语法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串
search_str都将被删除。REPLACE是TRANSLATE所提供的功能的一个子集。
例:select REPLACE('aaabbbccc','bb','dd') from dual;--aaaddbccc
select REPLACE('aaabbbccc','bbb') from dual;--aaaccc
9、RPAD
语法:RPAD(string1,x[,string2])
功能:rpad函数从右边对字符串使用指定的字符进行填充
string 表示:被填充的字符串
padded_length 表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,rpad函数将会把字符串截取成从左到右的n个字符;
pad_string 是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。
例:select rpad('tech', 7,'z') from dual;--techzzz
select rpad('tech', 2,'z') from dual;--te
10、RTRIM
语法: RTRIM(string1,[,string2])
功能: 返回删除从右边算起出现在string1中出现的字符string2. string2被缺省设置为单个的空格.数据库将扫描string1,从右边开始.当遇
到不在string2中的第一个字符,结果就被返回了。RTRIM的行为方式与LTRIM很相似.
例:select RTRIM('tech','h') from dual;--tec
11、SOUNDEX
语法: SOUNDEX(string)
功能: 返回string的声音表示形式.这对于比较两个拼写不同但是发音类似的单词而言很有帮助.
12、SUBSTR
语法: substr(string,start[,length])
功能: 函数返回字符串的一部分
例:select substr('abcdefg',1,2) from dual;--ab
select substr('abcdefg',0,2) from dual;--ab
select substr('abcdefg',-2,2) from dual;--fg
13、TRANSLATE
语法: 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.
例:select TRANSLATE('abcdefg','','h') from dual;--null
select TRANSLATE('abcdefg','b','h') from dual;--ahcdefg
14、UPPER
语法: UPPER(string)
功能: 返回大写的string.不是字母的字符不变.如果string是CHAR数据类型的,那么结果也是CHAR类型的.如果string是VARCHAR2类型的,那么
结果也是VARCHAR2类型的.
例:select UPPER('abcdefg') from dual;--ABCDEFG
15、ASCII
语法: ASCII(string)
功能: 数据库字符集返回string的第一个字节的十进制表示.请注意该函数仍然称作为ASCII.尽管许多字符集不是7位ASCII.CHR和ASCII是互为
相反的函数.CHR得到给定字符编码的响应字符. ASCII得到给定字符的字符编码.
例:select chr(65) from dual;--A
select ASCII('A') from dual;--65
16、INSTR
语法: INSTR(string1, string2[a,b])
功能: 得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行
扫描的.第b次出现的位置将被返回. a和b都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2在a和b的规定下没有
找到,那么返回0.位置的计算是相对于string1的开始位置的,不管a和b的取值是多少.
例:select instr('abcdebfg','b',1,2) from dual;--6
select instr('abcdefg','b',1,2) from dual;--0
select instr('abcdefg','b') from dual;--2
select instr('abcdebfg','b',-7) from dual;--2
17、INSTRB
语法: INSTRB(string1, string2[a,[b]])
功能: 和INSTR相同,只是操作的对参数字符使用的位置的是字节.
18、LENGTH
语法: LENGTH(string)
功能: 返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间.
如果string是NULL,返回结果是NULL,而不是0.
例:select LENGTH('abcdebfg') from dual;--8
select LENGTH('') from dual;--null
19、LENGTHB
语法: LENGTHB(string)
功能: 返回以字节为单位的string的长度.对于单字节字符集LENGTHB和LENGTH是一样的.
转载于:https://blog.51cto.com/wurandy/982790
SQL进阶六:字符串函数相关推荐
- sql中截取字符串函数_SQL Server 2017中的顶级SQL字符串函数
sql中截取字符串函数 SQL Server 2017 has been in the talk for its many features that simplify a developer's l ...
- SQL 常用的字符串函数
SQL 常用的字符串函数 1.replace:替换函数 replace(string,from_str,to_str) 即:将string中所有出现的from_str替换为to_str 2.left: ...
- SQL Server 分隔字符串函数实现
SQL Server 分隔字符串函数实现 在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录, ...
- oracle sql字符拆分字符串函数,oracle-是否有在PL / SQL中拆分字符串的功能?
oracle-是否有在PL / SQL中拆分字符串的功能? 我需要编写一个过程来规范具有由一个字符连接的多个令牌的记录. 我需要获得这些令牌来分割字符串,并将每个令牌作为新记录插入表中. Oracle ...
- 【C语言进阶】⑦字符串函数详解
文章目录 一.字符串函数汇总 1. 求字符串长度 - strlen(): 1.2 函数介绍: 1.3 自己模拟实现strlen()函数的功能 1.3.1 计数器版本 2. 字符串拷贝函数 - strc ...
- C语言进阶 之 字符串函数(4)
C语言中对字符和字符串的处理是很频繁,但是C 语言本身是没有字符串类型的,字符串通常放在 常量字符串 中 或者 字符数组中.字符串常量 适用于那些对它不做修改的字符串函数. 函数介绍 strlen s ...
- 【C语言进阶】字符串函数模拟实现
求字符串长度 strlen size_t strlen(const char*string); 头文件:<string.h> 功能: 计算字符串的长度,遇到'\0'便停止,统计'\0'之前 ...
- SQL Server之字符串函数
以下所有例子均Studnet表为例: 计算字符串长度 len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写 lower( ...
- SQL Server截取字符串函数操作
1.SUBSTRING()函数 含义:从指定位置开始截取指定数量的字符. 使用:SUBSTRING(原字符,截取字符的起始位置,截取字符数量) 举例: 1.截取字符的起始位置是从1开始的,为0的话截取 ...
最新文章
- 洛谷 3519 bzoj 2213 Difference
- java用继承编写宠物乐园_MoreThanJavaDay 5:面向对象进阶继承详解
- c++11-explicit
- python买菜打折优惠
- 移动端页面不需要在meta加_移动端适配viewport缩放方案
- kibana java script_Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布 - TGCode...
- STM32-SysTick定时器
- CentOS 配置mysql允许远程登录
- 计算机程序员能做多久,这个行业有年龄限制吗?
- 东航期货穿透接口相关资料
- JavaScript原生Ajax
- KITTI激光雷达点云解析与图像反投影
- 使用回溯算法结合递归树+备忘录解决01背包问题
- 最新手机号码归属地数据库(2017年4月1日)
- PSP3000高破解率傻瓜包!
- Linux平台串口读取GPS每次只能收到8个字节 以及 使用LiveGBS 调试 GB28181设备 包括视频 GPS信息等等
- 电总协议串口调试助手
- 高德地图的基础使用(一)显示地图
- css tabindex
- 目标检测算法——GHM