--
---------------------------------------------字符函数---------------------------------------------
-- 1: ASCII
返回字符串的ASCII值
SELECT ASCII ( ' A ' ) FROM DUAL;
SELECT ASCII ( ' a ' ) FROM DUAL;
-- 2: CHR
返回整数所对应的ASCII字符
SELECT CHR( ' 65 ' ) FROM DUAL;
SELECT CHR( 400 ) FROM DUAL; -- 如果超出ACII值,则返回空
-- 3: CONCAT 函数
连接字符串A和字符串B
SELECT CONCAT( ' 您好 ' , ' 欢迎来到ORACLE世界 ' ) AS TEXT FROM DUAL;
-- 3.1 如果要连接表里面的两个字段可以用||
SELECT TYPECODE || ' ____ ' || TYPE_NAME AS "TYPE" FROM USER_TYPES;
-- 4: INITCAP
返回字符串并将字符串的第一个字母变为大写;
-- Q 是否每个单词的第一个字母都会变成大些? 全部单词的首字母大写
SELECT INITCAP( ' your didn '' t try your best ' ) FROM DUAL;
-- 5: LENGTH
返回字符串的长度;
-- Q:返回表某条数据某个列实际长度,如果该表没有数据,返回0
SELECT LENGTH(TYPE_NAME) FROM USER_TYPES
-- 6: LOWER
返回字符串,并将所有的字符小写
SELECT LOWER ( ' AbcDedf Gbad ' ) FROM DUAL;
-- 7: UPPER
返回字符串,并将所有的字符大写
SELECT UPPER ( ' abcdEf ' ) FROM DUAL;
-- 8: LTRIM(X,[TRIM_STRING])
LTRIM 删除左边出现的字符串, 默认为空字符串
SELECT LTRIM ( ' hello world! ' ) FROM DUAL;
SELECT LTRIM ( ' hello, world ' , ' hello ' ) FROM DUAL;
-- 9: RTRIM(X, [TRIM_STRING])
RTRIM 删除右边出现的字符串TRIM_STRING,默认为空字符串。
SELECT RTRIM ( ' hello world! ' ) FROM DUAL;
-- 10: SUBSTR(string,start,count)
取子字符串,从start开始,取count个
SELECT SUBSTR( ' you are right!, come on ' , 3 , 30 ) FROM DUAL;
-- 11: INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SELECT INSTR( ' HELLO WORLD! WELCOME ' , ' WORLD ' , 1 ) FROM DUAL;
-- 12: RPAD
RPAD 在列的右边粘贴字符
-- 注意长度值并不是粘贴字符的长度,而是整个字符串的长度,如果长度小于原始字符串
-- SELECT RPAD('HELLO', 4, '*') FROM DUAL; 的值为HELL
SELECT RPAD( ' HELLO ' , 10 , ' * ' ) FROM DUAL;
SELECT RPAD( ' HELLO ' , 10 , ' E ' ) FROM DUAL;
-- 13: LPAD
LPAD 在列的左边粘贴字符
-- N: 注意的问题同上
SELECT LPAD( ' WELCOME ' , 20 , ' HELLO ' ) FROM DUAL;
-- 14: REPLACE('string','s1','s2')
string 希望被替换的字符或变量
s1 被替换的字符串
s2 要替换的字符串
SELECT REPLACE ( ' HE LOVE YOU ' , ' HE ' , ' I ' ) FROM DUAL;
-- 15: SOUNDEX
返回一个与给定的字符串读音相同的字符串
SQL > create table table1(xm varchar ( 8 ));
SQL > insert into table1 values ( ' weather ' );
SQL > insert into table1 values ( ' wether ' );
SQL > insert into table1 values ( ' gao ' );
-- 16.TRIM('s' from 'string')
LEADING 剪掉前面的字符
TRAILING 剪掉后面的字符
如果不指定,默认为空格符
SELECT TRIM( ' Y ' FROM ' YOU ' ) FROM DUAL;
-- 17: NVL(X, VALUE)
如果X是空值,返回VALUE,否则返回X
SELECT NVL( NULL , ' 2 ' ) FROM DUAL;
SELECT NVL( ' 33 ' , ' 2 ' ) FROM DUAL;
-- 18: NVL2(X, VALUE1, VALUE2)
如果X是空值,返回VALUE1, 否则返回VALUE2
SELECT NVL2( NULL , ' 3 ' , ' 4 ' ) FROM DUAL;
-- 19: NANVI(X, VALUE)
如果X不是数字,那么返回VALUE,否则返回X
SELECT NANVI( ' 3DF ' , ' 34 ' ) FROM DUAL; -- 不知是否是ORACLE 11里面出现的。
-- --------------------------------------------------------------------------------------------------
-- 1: ASCII
返回字符串的ASCII值
SELECT ASCII ( ' A ' ) FROM DUAL;
SELECT ASCII ( ' a ' ) FROM DUAL;
-- 2: CHR
返回整数所对应的ASCII字符
SELECT CHR( ' 65 ' ) FROM DUAL;
SELECT CHR( 400 ) FROM DUAL; -- 如果超出ACII值,则返回空
-- 3: CONCAT 函数
连接字符串A和字符串B
SELECT CONCAT( ' 您好 ' , ' 欢迎来到ORACLE世界 ' ) AS TEXT FROM DUAL;
-- 3.1 如果要连接表里面的两个字段可以用||
SELECT TYPECODE || ' ____ ' || TYPE_NAME AS "TYPE" FROM USER_TYPES;
-- 4: INITCAP
返回字符串并将字符串的第一个字母变为大写;
-- Q 是否每个单词的第一个字母都会变成大些? 全部单词的首字母大写
SELECT INITCAP( ' your didn '' t try your best ' ) FROM DUAL;
-- 5: LENGTH
返回字符串的长度;
-- Q:返回表某条数据某个列实际长度,如果该表没有数据,返回0
SELECT LENGTH(TYPE_NAME) FROM USER_TYPES
-- 6: LOWER
返回字符串,并将所有的字符小写
SELECT LOWER ( ' AbcDedf Gbad ' ) FROM DUAL;
-- 7: UPPER
返回字符串,并将所有的字符大写
SELECT UPPER ( ' abcdEf ' ) FROM DUAL;
-- 8: LTRIM(X,[TRIM_STRING])
LTRIM 删除左边出现的字符串, 默认为空字符串
SELECT LTRIM ( ' hello world! ' ) FROM DUAL;
SELECT LTRIM ( ' hello, world ' , ' hello ' ) FROM DUAL;
-- 9: RTRIM(X, [TRIM_STRING])
RTRIM 删除右边出现的字符串TRIM_STRING,默认为空字符串。
SELECT RTRIM ( ' hello world! ' ) FROM DUAL;
-- 10: SUBSTR(string,start,count)
取子字符串,从start开始,取count个
SELECT SUBSTR( ' you are right!, come on ' , 3 , 30 ) FROM DUAL;
-- 11: INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SELECT INSTR( ' HELLO WORLD! WELCOME ' , ' WORLD ' , 1 ) FROM DUAL;
-- 12: RPAD
RPAD 在列的右边粘贴字符
-- 注意长度值并不是粘贴字符的长度,而是整个字符串的长度,如果长度小于原始字符串
-- SELECT RPAD('HELLO', 4, '*') FROM DUAL; 的值为HELL
SELECT RPAD( ' HELLO ' , 10 , ' * ' ) FROM DUAL;
SELECT RPAD( ' HELLO ' , 10 , ' E ' ) FROM DUAL;
-- 13: LPAD
LPAD 在列的左边粘贴字符
-- N: 注意的问题同上
SELECT LPAD( ' WELCOME ' , 20 , ' HELLO ' ) FROM DUAL;
-- 14: REPLACE('string','s1','s2')
string 希望被替换的字符或变量
s1 被替换的字符串
s2 要替换的字符串
SELECT REPLACE ( ' HE LOVE YOU ' , ' HE ' , ' I ' ) FROM DUAL;
-- 15: SOUNDEX
返回一个与给定的字符串读音相同的字符串
SQL > create table table1(xm varchar ( 8 ));
SQL > insert into table1 values ( ' weather ' );
SQL > insert into table1 values ( ' wether ' );
SQL > insert into table1 values ( ' gao ' );
-- 16.TRIM('s' from 'string')
LEADING 剪掉前面的字符
TRAILING 剪掉后面的字符
如果不指定,默认为空格符
SELECT TRIM( ' Y ' FROM ' YOU ' ) FROM DUAL;
-- 17: NVL(X, VALUE)
如果X是空值,返回VALUE,否则返回X
SELECT NVL( NULL , ' 2 ' ) FROM DUAL;
SELECT NVL( ' 33 ' , ' 2 ' ) FROM DUAL;
-- 18: NVL2(X, VALUE1, VALUE2)
如果X是空值,返回VALUE1, 否则返回VALUE2
SELECT NVL2( NULL , ' 3 ' , ' 4 ' ) FROM DUAL;
-- 19: NANVI(X, VALUE)
如果X不是数字,那么返回VALUE,否则返回X
SELECT NANVI( ' 3DF ' , ' 34 ' ) FROM DUAL; -- 不知是否是ORACLE 11里面出现的。
-- --------------------------------------------------------------------------------------------------