如何把SQL语句中SELECT 和 FROM之间的部分换成count(*)
假设有一个sql语句:SELECTid,name,(select1+2fromdual)FROMmytablewhereid>5.我想将SELECT和FROM(都是大写)...
假设有一个sql语句:SELECT id, name, (select 1+2 from dual) FROM mytable where id > 5.
我想将SELECT和FROM(都是大写)之间的部分替换成 count(*) 该怎么做啊。用正则表达式怎么做呢?
我想得到的sql语句是
SELECT count(*) FROM mytable where id > 5 展开
我想将SELECT和FROM(都是大写)之间的部分替换成 count(*) 该怎么做啊。用正则表达式怎么做呢?
我想得到的sql语句是
SELECT count(*) FROM mytable where id > 5 展开
展开全部
String s = "SELECT e.*,d.dname FROM emp e LEFT JOIN dept d ON d.did=e.did WHERE 1=1";
String regex = ".*(FROM.*)$";
String result = s.replaceAll(regex, "SELECT count(*) $1");
System.out.println(result);
.表示任意字符,*表示0到任意多个,()中表示一组,前面的任意多个字符替换为SELECT count(*),后面$1表示第一组不变,也就是FROM及其后面任意多个字符维持原有。
String regex = ".*(FROM.*)$";
String result = s.replaceAll(regex, "SELECT count(*) $1");
System.out.println(result);
.表示任意字符,*表示0到任意多个,()中表示一组,前面的任意多个字符替换为SELECT count(*),后面$1表示第一组不变,也就是FROM及其后面任意多个字符维持原有。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
查找(正则表达式):
(?<=SELECT).*?(?=FROM)
替换为(字符串):
count(*)
替换为(正则表达式):
count\(\*\)
(?<=SELECT).*?(?=FROM)
替换为(字符串):
count(*)
替换为(正则表达式):
count\(\*\)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Match m= Regex.match(“SELECT id, name, (select 1+2 from dual) FROM mytable where id > 5.
”,“SELECT .+ FROM”);
m.value;就是你要匹配的字段了
”,“SELECT .+ FROM”);
m.value;就是你要匹配的字段了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你那样写没有意义 无论是count(id)还是count(name)结果都是一样的数字,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT count(id) FROM mytable where id > 5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |