oracle数据库中的通配符,ORACLE学习笔记系列(9)通配符和特殊字符

oracle数据库中的通配符,ORACLE学习笔记系列(9)通配符和特殊字符ORACLE学习笔记系列(9)通配符和特殊字符一、字符匹配:[NOT]LIKE‘’1、可以是一个完整的字符串,也可以含有通配符的字符串。2、能与LIKE一起使用的通配符包括“%”、“_”。%(百分号):表示任意数量的字符,或者可能根本没有字符。_(下划线):表示确切的任意单个未知字符。3、使用LIKE时,NULL不能被%匹配到。SELECTCOUNT(*)ASCFROMDUALWH…

ORACLE学习笔记系列(9)通配符和特殊字符

一、字符匹配:[NOT] LIKE ‘’

1、可以是一个完整的字符串,也可以含有通配符的字符串。

2、能与LIKE一起使用的通配符包括“%”、“_”。

%(百分号):表示任意数量的字符,或者可能根本没有字符。

_(下划线):表示确切的任意单个未知字符。

3、使用LIKE时,NULL不能被%匹配到。

SELECT COUNT(*) AS C FROM DUAL WHERE ‘abcde’ LIKE ‘%’;

SELECT COUNT(*) AS C FROM DUAL WHERE ‘abcde’ LIKE ‘a%’;

SELECT COUNT(*) AS C FROM DUAL WHERE ‘abcde’ LIKE ‘%e’;

SELECT COUNT(*) AS C FROM DUAL WHERE ‘abcde’ LIKE ‘%c%’;

SELECT COUNT(*) AS C FROM DUAL WHERE ‘abcde’ LIKE ‘_bcde’;

SELECT COUNT(*) AS C FROM DUAL WHERE ‘abcde’ LIKE ‘abc__’;

SELECT COUNT(*) AS C FROM DUAL WHERE ‘abcde’ LIKE ‘ab_de’;

SELECT COUNT(*) AS C FROM DUAL WHERE NULL LIKE ‘%’;

SELECT COUNT(*) AS C FROM DUAL WHERE NULL LIKE ‘_’;

二、常用符号:

SELECT ASCII(‘ ‘), –CHR(32)

ASCII(‘%’), –CHR(37)

ASCII(‘&’), –CHR(38)

ASCII(‘*’), –CHR(42)

ASCII(‘_’), –CHR(95)

ASCII(””), –CHR(39)

ASCII(‘”‘), –CHR(34)

ASCII(‘,’), –CHR(44)

ASCII(‘$’), –CHR(36)

ASCII(‘?’), –CHR(63)

ASCII(‘^’), –CHR(94)

ASCII(‘a’), –CHR(97)

ASCII(‘z’), –CHR(122)

ASCII(‘0’), –CHR(48)

ASCII(‘9’), –CHR(57)

ASCII(‘+’), –CHR(43)

ASCII(‘-‘), –CHR(45)

ASCII(‘*’), –CHR(42)

ASCII(‘/’), –CHR(47)

ASCII(‘=’), –CHR(61)

ASCII(‘|’), –CHR(124)

CHR(10), –是一个换行符\n

CHR(13), –是一个回车符\r

‘a’ || CHR(10) || ‘b’,

‘a’ || CHR(13) || ‘b’

FROM DUAL;

三、如何保存特殊字符到数据库中:

–如何插入百分号

INSERT INTO C VALUES (1, ‘100%’); –可以直接正常保存

INSERT INTO C VALUES (2, ‘100’ || CHR(37) || 200); — chr(37)代表字符%

–如何插入下划线

INSERT INTO C VALUES (3, ‘a_b’); –可以直接正常保存

INSERT INTO C VALUES (4, ‘a’ || CHR(95) || ‘b’); — chr(95)代表字符_

–如何插入单引号

INSERT INTO C VALUES (5, ‘i’ || CHR(39) || ‘m’); — chr(39)代表字符’

INSERT INTO C VALUES (6, ‘i”m’); — 两个”可以表示一个’

–如何插入&符号

INSERT INTO C VALUES (7, CHR(38) || ‘_hello’);– chr(38)代表字符&

–另一种方法,使用 set define off 关闭替代变量的功能,再插入数据。

set define OFF;

INSERT INTO C VALUES (8, ‘&_hello’);

四、如何匹配查询特殊字符,如通配符%与_

–百分号%

SELECT * FROM C WHERE NAME LIKE ‘100\%’ ESCAPE ‘\’;

SELECT * FROM C WHERE NAME LIKE ‘100\%%’ ESCAPE ‘\’;

SELECT * FROM C WHERE NAME LIKE ‘100’ || CHR(37) || ‘%’;

–下划线_

SELECT * FROM C WHERE NAME LIKE ‘a\_%’ ESCAPE ‘\’;

SELECT * FROM C WHERE NAME LIKE ‘_\__’ ESCAPE ‘\’;

SELECT * FROM C WHERE NAME LIKE ‘_’||chr(95)||’_’ ;–不准确,会查出NAME值为3个字符长度的全部数据。

SELECT * FROM C WHERE NAME LIKE ‘a’||chr(95)||’b’ ;

–单引号’

SELECT * FROM C WHERE NAME LIKE ‘i”m’;

SELECT * FROM C WHERE NAME LIKE ‘i’ || CHR(39) || ‘m’;

SELECT * FROM C WHERE NAME LIKE ‘i\”m’ ESCAPE ‘\’;–报错

–符号&

SELECT * FROM C WHERE NAME LIKE ‘&_hello’; –提示输入变量“_hello”

SELECT * FROM C WHERE NAME LIKE ‘\&%’ ESCAPE ‘\’;–报错

SELECT * FROM C WHERE NAME LIKE CHR(38) || ‘_hello’;

五、去除空格换行

SELECT ID,

NAME,

TRIM(REPLACE(NAME, ‘ ‘ )) 去除空格,

REPLACE(NAME, CHR(13), ”) 去除回车,

REPLACE(NAME, CHR(10), ”) 去除换行

FROM C;

–字符相关函数

LTRIM

LTRIM函数删除字符串左边的前缀字符。一般前缀字符总是空格。

其具体的语法格式如下:

LTRIM(string[,trimchars])

其中:

string 任意VARCHAR2型或CHAR型的数值

trimchars 待删除的字符串

下面是该函数的使用情况:

LTRIM(’ Jeff’)=‘Jeff’(leading spaces removed)

LTRIM(’*****Jeff’,’*’)=‘Jeff’

LTRIM(’*!*!*Jeff’,’*!’)=‘Jeff’

RTRIM

RTRIM函数压缩掉串右面的尾随字符,常常是从指定字符串(第一参数)中压缩空格。

其具体的语法格式如下:

RTRIM(string[,trimchars])

其中:

string任意VARCHAR2型或CHAR型的数据

trimchars准备压缩掉的字符(串)

下面是该函数的使用情况:

RTRIM(‘Jeff ’)= ‘Jeff’(trailing spaces removed)

RTRIM(‘Jenny*****’)= ‘Jeff’

RTRIM(‘Jenny*!*!*’)= ‘Jeff’

TRIM

TRIM函数将字符串的前缀(或尾随)字符删除。

其具体的语法格式如下:

TRIM([LEADING|TRAILING|BOTH][trimchar FROM] string)

其中:

LEADING指明仅仅将字符串的前缀字符删除

TRAILING指明仅仅将字符串的尾随字符删除

BOTH指明既删除前缀字符,也删除尾随字符。这也是默认方式

string任意一待处理字符串

trimchar可选项。指明试图删除什么字符,默认被删除的字符是空格

下面是该函数的使用情况:

TRIM(’ Ashley ’)=‘Ashley’

TRIM(LEADING ’*’ FROM’***Ashley***’)=‘Ashley***’

REPLACE

REPLACE函数在一字符串中搜索一指定的子串,并将其替换成另外一指定串。

其具体的语法格式如下:

REPLACE(string,substring[,replace_string])

其中:

string被搜索字符串。在其中搜索待替换串

substring被搜索子串。所有找到的子串均被替换掉

replace_string替换结果子串。是一可选项。如果该参数被忽略,则所有被搜索到的子串实质上均被删除

下面是该函数的使用情况:

REPLACE(’This is a test’,’is’,’was’)=‘Thwas was a test’

REPLACE(’This is a test’,’is’)=‘Th a test’

今天的文章oracle数据库中的通配符,ORACLE学习笔记系列(9)通配符和特殊字符分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/24226.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注