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”的表中。
请各位大侠多多支持啊,急用!

标准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’)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-18
这个不用正则
select * from table where LOWER(name) like 'zhang%';
第2个回答  2013-11-18
编程
相似回答