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”的表中。
请各位大侠多多支持啊,急用!
展开
 我来答
匿名用户
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’)
匿名用户
2013-11-18
展开全部
这个不用正则
select * from table where LOWER(name) like 'zhang%';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-18
展开全部
编程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式