如何把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
展开
 我来答
雷哥教Excel
2018-12-25 · TA获得超过436个赞
知道答主
回答量:88
采纳率:100%
帮助的人:59.4万
展开全部
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及其后面任意多个字符维持原有。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百年星空
2010-12-27 · TA获得超过143个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:154万
展开全部
查找(正则表达式):
(?<=SELECT).*?(?=FROM)
替换为(字符串):
count(*)
替换为(正则表达式):
count\(\*\)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
简幸福2020
2010-12-28 · TA获得超过177个赞
知道答主
回答量:91
采纳率:0%
帮助的人:0
展开全部
Match m= Regex.match(“SELECT id, name, (select 1+2 from dual) FROM mytable where id > 5.
”,“SELECT .+ FROM”);
m.value;就是你要匹配的字段了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水流清远九泉h
2010-12-28
知道答主
回答量:22
采纳率:0%
帮助的人:5.8万
展开全部
你那样写没有意义 无论是count(id)还是count(name)结果都是一样的数字,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jie092
2010-12-28 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:114万
展开全部
SELECT count(id) FROM mytable where id > 5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式