java程序中Sql语句中用正则表达式的使用?
就是这样的问题:一个数据库表numname成绩1zhang202zhang2303ZHANG1004ZHANG1808wang30怎么用java程序和SQL及正则表达式将...
就是这样的问题:
一个数据库表
num name
成绩
1
zhang
20
2
zhang2 30
3
ZHANG
100
4
ZHANG1 80
8
wang
30
怎么用java程序和SQL及正则表达式将这个表中的name为zhang,zhang2,ZHANG,ZHANG1等的所有记录,包括num,成绩等信息提取出来,并放入一个名为“NEW”的表中。
请各位大侠多多支持啊,急用! 展开
一个数据库表
num name
成绩
1
zhang
20
2
zhang2 30
3
ZHANG
100
4
ZHANG1 80
8
wang
30
怎么用java程序和SQL及正则表达式将这个表中的name为zhang,zhang2,ZHANG,ZHANG1等的所有记录,包括num,成绩等信息提取出来,并放入一个名为“NEW”的表中。
请各位大侠多多支持啊,急用! 展开
2013-11-18
展开全部
标准SQL不支持正则表达式查询吧。
你这种情况,只能是:
select * from {table} where name like 'ZHANG%' OR 'zhang%' 来搜
放入另一个表的话
insert into target_table_name
select select * from src_table_name where name like 'ZHANG%' OR 'zhang%'
目前:Oracle10g支持了正则表达式,用法:
SELECT * FROM table_name WHERE REGEXP_LIKE(TO_CHAR(start_date, 'YYYY'), '^199[5-8]$');
regexp_like函数的基本构成是:
regexp_like(x,pattern[,match_option])
其基本功能是在x中查找pattern,如果能找到返回true否则返回false,这里的可选参数match_option可以有如下几种形式:
‘c’ 表明进行匹配时区分大小写(这也是默认选项)。
‘i’ 表明在匹配时不区分大小写。
‘n’ 表明允许使用匹配任何字符串的元数据,即’.'。
‘m’将x作为一个包含多行的字符串。
以下是两个关于regexp_like的例子:
这个例子是寻找员工中的80后的员工。
select * from emp where regexp_like(to_char(birthdate,’yyyy’),’^198[0-9]$’);
这个例子是寻找名字是以’M'或者’m'打头的那些员工的名字
select * from emp where regexp_like(ename,’^j’,'i’)
你这种情况,只能是:
select * from {table} where name like 'ZHANG%' OR 'zhang%' 来搜
放入另一个表的话
insert into target_table_name
select select * from src_table_name where name like 'ZHANG%' OR 'zhang%'
目前:Oracle10g支持了正则表达式,用法:
SELECT * FROM table_name WHERE REGEXP_LIKE(TO_CHAR(start_date, 'YYYY'), '^199[5-8]$');
regexp_like函数的基本构成是:
regexp_like(x,pattern[,match_option])
其基本功能是在x中查找pattern,如果能找到返回true否则返回false,这里的可选参数match_option可以有如下几种形式:
‘c’ 表明进行匹配时区分大小写(这也是默认选项)。
‘i’ 表明在匹配时不区分大小写。
‘n’ 表明允许使用匹配任何字符串的元数据,即’.'。
‘m’将x作为一个包含多行的字符串。
以下是两个关于regexp_like的例子:
这个例子是寻找员工中的80后的员工。
select * from emp where regexp_like(to_char(birthdate,’yyyy’),’^198[0-9]$’);
这个例子是寻找名字是以’M'或者’m'打头的那些员工的名字
select * from emp where regexp_like(ename,’^j’,'i’)
2013-11-18
展开全部
这个不用正则
select * from table where LOWER(name) like 'zhang%';
select * from table where LOWER(name) like 'zhang%';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-18
展开全部
编程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询