Oracle单行函数之字符函数
admin
2023-05-03 06:04:31
0

本次主要总结了以下字符函数的作用及使用方法:


函 数说 明
ASCII返回对应字符的十进制值
CHR给出十进制返回字符
CONCAT拼接两个字符串,与 || 相同
INITCAT将字符串的第一个字母变为大写
INSTR找出某个字符串的位置
INSTRB找出某个字符串的位置和字节数
LENGTH以字符给出字符串的长度
LENGTHB以字节给出字符串的长度
LOWER将字符串转换成小写
LPAD使用指定的字符在字符的左边填充
LTRIM在左边裁剪掉指定的字符
RPAD使用指定的字符在字符的右边填充
RTRIM在右边裁剪掉指定的字符
REPLACE执行字符串搜索和替换
SUBSTR取字符串的子串
SUBSTRB取字符串的子串(以字节)
SOUNDEX返回一个同音字符串
TRANSLATE执行字符串搜索和替换
TRIM裁剪掉前面或后面的字符串
UPPER将字符串变为大写
NVL以一个值来替换空值


1、ASCII()

是字符串,返回与指定的字符对应的十进制数。

SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;

     A      a ZERO SPACE

---------- ---------- ---------- ----------

65     97     48     32

2、CHR(n])

给出整数,返回对应字符。如:

SQL> select chr(65) chr65 from dual;

 C

 -

 A

3、CONCAT(,)

返回字符串c1与字符串c2合并后的值。例如:

SQL> select concat('010-','8801 8159') from dual;

CONCAT('01

-----------------

010-8801 8159

4、INITCAP()

返回字符串c1 并第一个字母变为大写。例如:

SQL> select initcap('simth') upp from dual;

UPP

-----

Simth

5、INSTR(,[,[,] ] )

在一个字符串中搜索指定的字符,返回发现指定的字符的位置。

C1: 被搜索的字符串

C2: 希望搜索的字符串

I: 搜索的开始位置,缺省是1

J: 出现的位置,缺省是1。

SQL> SELECT INSTR ('Oracle Training', 'ra', 1, 2) "Instring" FROM DUAL;

 Instring

----------

        9

6、INSTRB(,[,[,] ] )

除了返回的字节外 ,与INSTR 相同,

7、LENGTH(  )

返回字符串 c 的长度。

SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from nchar_tst;

NAME LENGTH(NAME) ADDR      LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))

------ ------------ ---------------- ------------ ---------- ----------------

张五一      3        北京市海淀区         6         99999.99    8

8、LENGTHB(  )

以字节返回字符串的字节数。

SQL> select name,lengthb(name),length(name) from nchar_tst;

NAME   LENGTHB(NAME) LENGTH(NAME)

------ ------------- ------------

张五一              6            3

9、LOWER (  )

返回字符串并将所有字符变为小写。

SQL> select lower('AaBbCcDd') AaBbCcDd from dual;

AABBCCDD

--------

aabbccdd

10、UPPER( )

与 LOWER 相反,将给出字符串变为大写。如:

SQL> select upper('AaBbCcDd') AaBbCcDd from dual;

AABBCCDD

--------

AABBCCDD

11、RPAD和LPAD

RPAD(string,Length[,'set'])

LPAD(string,Length[,'set'])

      RPAD在列的右边用特定的字符补齐;

      LPAD在列的左边用特定的字符补齐。

例1:

SQL>select   RPAD(City,35,'.'),temperature    from weather;

        RPAD(City,35,'.')            temperature

        -------------------------- ----------------

           CLEVELAND......                    85

           LOS ANGELES..                     81

          .........................

        (即不够35个字符用'.'补齐)

12、LTRIM(左截断)RTRIM(右截断)

LTRIM (string [,’set’])

Left TRIM (左截断)删去左边出现的任何set 字符。

RTRIM (string [,’set’])

Right TRIM (右截断)删去右边出现的任何set 字符。

例1:

SELECT RTRIM (‘Mother Theresa, The’, ‘The’)  FROM DUAL;

RTRIM (‘M

---------------

Mother Theresa,

13、SUBSTR Substr(string,m[,n]) 截取字符串函数

substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符

substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符

substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符

substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。

substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。

14、SUBSTRB(string,m[,n])

对字串(或字段),从m字节 开始,连续取 n个字节并返回结果,如果没有指n则一直取到尾。

15、REPLACE (‘string’ [,’string_in’,’string_out’])

String: 希望被替换的字符串或变量。

String_in: 被替换字符串。

String_out: 要替换字符串。

SQL> select  replace ('111222333444','222','888') from dual;

REPLACE('111

--------------------

111888333444


相关内容

热门资讯

卖“毒蛋”的人,抓到了 作者 | 何国胜 编辑 | 向现“(人)抓到了,目前案件正在侦办中。”7月28日晚间,苏州禁毒部门有...
尺素金声丨实施零关税国家达63... 海关总署发布的数据显示,今年5月1日起,我国对53个非洲建交国全面实施零关税举措,目前,我国实施零关...
职业索赔盯上基层诊所,倒逼用药... 文 | 布丁基层诊所正在被职业索赔盯上。据新京报,去年夏天,一男子走进河南南阳一家诊所,要求购买三瓶...
“西瓜我全买了”就可以肆意妄为... 拿西瓜砸了人,把瓜都买了,就能一走了之吗?事实证明,这套逻辑在法治社会行不通。7月28日晚,据海峡都...
科学家在日本广岛发现新物质,系... 在美国对日本广岛进行原子弹轰炸近81年后,科学家们在广岛的沙滩上发现了一种奇异且从未被发现过的新物质...
AI失控,反噬开始 作者 | 贺一 编辑 | 阿树近期,中国开源模型在美国频繁引发热议。7月28日,月之暗面发布Kimi...
“总统千金天价离婚”,分到43... 2026年7月24日下午,首尔高等法院,一场持续近十年的司法拉锯战终于接近尾声。法庭裁定SK集团会长...
巴基斯坦,又拿下一个历史性协议 全世界都没想到,接连的中东大战,巴基斯坦正成为最大赢家。去年以色列追杀哈马斯,空袭卡塔尔首都,阿拉伯...
汇正财经贺峰的一对一指导服务怎...   对于考虑购买证券投资顾问服务的投资者来说,'一对一指导服务怎么样'是一个重要的考量维度。需要首先...
重庆失联00后网格员龚宝冬确认...   重庆失联00后网格员龚宝冬确认遇难  【重庆失联00后网格员龚宝冬确认遇难】2026年7月29日...