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通配符,运算符的使用,PDF文档,查找起来非常方便
Oracle中常用的一些通用符号,帮助了解他们在语句当中所表达的意思
Struts2_Action学习笔记、通配符{1},{2}......
带通配符的字符串匹配算法,带通配符的字符串匹配算法
C++实现字符串匹配函数,匹配中可以包括通配符
vc++ 带通配符的字符串匹配算法实例源代码,用"*" 和 "?"进行字符串的匹配查找。直接拷贝代码就能使用。部分函数功能:带通配符的字符串匹配 参数:lpszSour是一个普通字符串; lpszMatch是一可以包含通配符的...
Access,MSSQLServer和Oracle中的通配符.pdf
vc 带通配符的字符串匹配算法实例源代码,用"*" 和 "?"进行字符串的匹配查找。直接拷贝代码就能使用。部分函数功能:带通配符的字符串匹配 参数:lpszSour是一个普通字符串; lpszMatch是一可以包含通配符的...
比较初级的C++代码,带通配符的字符串匹配,函数递归题
Access,MSSQLServer和Oracle中的通配符[借鉴].pdf
Oracle Text 使Oracle9i 具备了强大的文本检索能力和智能化的文本管理能力,Oracle Text 是Oracle9i 采用的新名称,在oracle8/8i 中被称为oracle intermedia text,oracle8 以前是 oracle context cartridge。Oracle...
带通配符的字符串匹配.zip
中文子网掩码和通配符掩码计算器 简单实用
sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,...2、这种是通过escape关键字进行转义,将特定符号后的字符进行转义,这里斜杠后面的%就不再是通配符,斜杠之前的%仍然起通配
WPS 通配符使用全局替换,WPS 中文匹配,WPS正则使用
Word查找栏代码·通配符一览表 序号 清除使用通配符复选框 勾选使用通配符复选框 特殊字符 代码 特殊字符 代码or通配符
vc++ 带通配符的字符串匹配算法实例源代码 复制代码就能用
17.1.3. 泛型的通配符"?" 17-62 17.1.4. 泛型方法的定义 17-63 17.1.5. 泛型类的定义 17-63 17.1.6. 泛型与异常 17-64 17.1.7. 泛型的一些局限型 17-65 17.2. 增强的for循环 17-66 17.3. 自动装箱和自动拆箱 17-69 ...