regexp likeORACLE正则匹配查询,LIKE查询多个值检索数据库对象。
字符串’^198[0-9]$’可以匹配‘1980-1989’,如果希望统计出公司那些员⼯是80年~89年⼊职的,就可以使⽤如下的SQL
语句:
select * from emp e where regexp_like(to_char( e.hiredate,'yyyy'),'^198[0-9]$');
正则表达式中常⽤到的元数据(metacharacter)如下:
^ 匹配字符串的开头位置。
$ 匹配⽀付传的结尾位置。
* 匹配该字符前⾯的⼀个字符0次,1次或者多次出现。例如52*oracle 可以匹配 5oracle,52oracle,522oracle,5222oracle等等。
+ 匹配该字符前⾯的⼀个字符1次或者多次出现。例如52+oracle 可以匹配 52oracle,522oracle,5222oracle等等
匹配该字符前⾯的⼀个字符0次或1次或者多次出现。例如52oracle 只能匹配5oracle,52oracle等等
{n} 匹配⼀个字符串n次,n为正整数。例如:hel{2}o 所匹配的是hello
{n,m} 匹配⼀个字符串⾄少n次,⾄多m次。其中n和m都是整数。
. 匹配除了null之外的任何单个字符串
(pattern) 这个是⽤来匹配指定模式的⼀个⼦表达式
x|y 匹配x或者y,其中x和y是⼀个或者多个字符
[abc] 匹配括号中的任意⼀个字符。例如:[ab]bc可以匹配abc和bbc
[a-z] 匹配指定范围内的任意字符串。例如[A-G]hi可以匹配Ahi⾄Ghi
[::]指定⼀个字符类,可以匹配该类中的任意字符 这⾥的字符类包括:
[:alphanum:] 可以匹配字符0-9、A-Z、a-z
[:alpha:]可以匹配字符A-Z、a-z
[:blank:]可以匹配空格或者tab键
[:digit:]可以匹配数字 0-9
[:gragh:]可以匹配⾮空字符
[:punct:]可以匹配. , ” ‘等标点符号。
[:upper:]可以匹配字符A-Z
[:lower:]可以匹配字符a-z
关于orace中的正则表达式只能通过oracle特意为正则表达式设计的4个函数来使⽤。这4个函数分别是:
regexp_like,regexp_instr,regexp_replace,regexp_substr。
查询oracle中,哪些对象的sql包括了检索的⽂本(多个值 使⽤“|”隔开, 关于user_source对象,移步到⽆限套娃链接 )
--查询并去重:数据库中包含表名的对象名称(可以是存储过程、视图、表等对象)
SELECT
-- *
distinct t.name
FROM user_source t
where regexp_like(), 'mwiplotsts|awiplotsts|awipudidimei|ainvlbllot|abasiotifo|awippslifo|ainvlotiss|ainvsnmiss|aateautscn|iodmsntrce|ainvlbllot');-- tot
未去重(查询出详细信息):
去重查询出涉及到的对象名称:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论