找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4818|回复: 9

[求助] 求助如何获取文本中指定规则的字符串

9

主题

27

帖子

27

积分

贫民

积分
27
falseform 发表于 2018-6-6 18:04:58 | 显示全部楼层 |阅读模式
本帖最后由 falseform 于 2018-6-6 18:47 编辑

(select DISPLAYNAME,realname,id,patientid,spaceid,ctime
from
(select rig1.DISPLAYNAME,rio.realname,rp.id,rp.patientid,rp.spaceid,count(distinct po.id) spacepost,dref.ctime
from opt.r_proposals rp
left join opt.r_doctorpatientrefs dref on hostid=rp.id
left join r_doctorpatientposts po on po.doctorpatientrefid=dref.id and po.status=1 and po.userid=dref.spaceid
join opt.r_inspectgroups rig on rig.id=rp.inspectgroupid
join opt.r_inspectors rio on rp.inspectorid=rio.id and rio.realname not like '%测试%'
join opt.f_inspectgroups rig1 on rig.parentid=rig1.id
join opt.r_inspectgroups rig2 on rig.parentid=rig2.id


比如以上这段代码,我想获取所有的 'r_' 开头以空格结尾的字符串,以及所有的 'f_' 开头以空格结尾的字符串,
输出去重并且以逗号隔开,
或者另一种思路就是from和join到他们后面第二个空格之间的字符串

请问怎么处理呢,感觉我掌握的pandas并不能实现
回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-6-6 20:23:38 | 显示全部楼层
把数据传上来,要求写全,我试试。
回复 支持 反对

使用道具 举报

9

主题

27

帖子

27

积分

贫民

积分
27
falseform  楼主| 发表于 2018-6-6 22:22:16 | 显示全部楼层
sheeboard 发表于 2018-6-6 20:23
把数据传上来,要求写全,我试试。

就这么一段吧,应该也能实验,业务sql 不敢全拿出来
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-6-6 22:40:00 | 显示全部楼层
不要真的sql数据,只要测试数据和具体目的,猜数据和表结构太麻烦了。
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-6-6 22:50:51 | 显示全部楼层
顺便说一下,很多新人发帖求助不贴代码,不贴trace info,真的很难帮忙,大家的目地是解决问题,而不是猜是什么问题。
回复 支持 反对

使用道具 举报

9

主题

27

帖子

27

积分

贫民

积分
27
falseform  楼主| 发表于 2018-6-7 10:08:32 | 显示全部楼层
sheeboard 发表于 2018-6-6 22:50
顺便说一下,很多新人发帖求助不贴代码,不贴trace info,真的很难帮忙,大家的目地是解决问题,而不是猜是 ...

因为执行存储过程需要依赖其他的表,需要其他的表同步任务完成之后再执行存储过程,
所以我的主要目的是获取所有的依赖的表,因为一个存储过程可能依赖很多的表,手动去搜索FROM和join的表实在是太麻烦而且会出错,所以想用py写一个脚本获取存储过程中的所有表,然后去重,,找到那些表就能设置依赖了,,根本目的是获取存储过程中所有的表,但是我们的命名规则普遍from的是f_和r_开头的表,所以有开头的说法
回复 支持 反对

使用道具 举报

9

主题

27

帖子

27

积分

贫民

积分
27
falseform  楼主| 发表于 2018-6-7 10:11:08 | 显示全部楼层
sheeboard 发表于 2018-6-6 22:50
顺便说一下,很多新人发帖求助不贴代码,不贴trace info,真的很难帮忙,大家的目地是解决问题,而不是猜是 ...

CREATE OR REPLACE procedure OPT.proposal_valid_weekly(input_date in date)
as
v_date date;
begin
v_date:=trunc(input_date);
delete from f_proposal_valid_weekly where the_date=v_date+1;
insert into f_proposal_valid_weekly(the_date,group_name,realname,proposal_total,proposal_patient_total,replay3_total,replay3_patient_total,prensent,tel,booking,patientsignin)
with pa
as
(select DISPLAYNAME,realname,id,patientid,spaceid,ctime
from
(select rig1.DISPLAYNAME,rio.realname,rp.id,rp.patientid,rp.spaceid,count(distinct po.id) spacepost,dref.ctime
from opt.r_proposals rp
left join opt.r_doctorpatientrefs dref on hostid=rp.id
left join r_doctorpatientposts po on po.doctorpatientrefid=dref.id and po.status=1 and po.userid=dref.spaceid
join opt.r_inspectgroups rig on rig.id=rp.inspectgroupid
join opt.r_inspectors rio on rp.inspectorid=rio.id and rio.realname not like '%测试%'
join opt.r_inspectgroups rig1 on rig.parentid=rig1.id
where rp.ctime>=v_date-9
and rp.ctime<v_date+1
and rp.servicedef='FLOW'
and po.ctime<v_date+1
and rp.status='CLOSED'
and rp.result='FINISH'
--and dref.ctime>=rp.utime
group by rig1.DISPLAYNAME,realname,rp.id,rp.patientid,rp.spaceid,dref.ctime
)


这是一段存储过程
回复 支持 反对

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
buptkkll 发表于 2018-6-7 19:50:14 | 显示全部楼层
获取文本中指定规则的字符串,为啥不用正则表达式
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-6-7 22:29:21 | 显示全部楼层
我搞错了还以为是要sql转pandas查询语句
Screenshot from 2018-06-07 22-26-47.png
回复 支持 反对

使用道具 举报

9

主题

27

帖子

27

积分

贫民

积分
27
falseform  楼主| 发表于 2018-6-8 10:46:26 | 显示全部楼层
sheeboard 发表于 2018-6-7 22:29
我搞错了还以为是要sql转pandas查询语句

看来正则表达式是一个很重要的技能,我还要学习
能否再请教下,如果想获取所有的表呢, 就是获取所有from后的表 以及join后的表
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表