问题描述
strings="select'城乡居民基本养老保险个人账户年度台账明细表(HI36)','LS028','',nvl(sum(casewhennvl(LS028,-1)<0then1end),0),count(1),'空值和负数错误比例:',nvl(trunc(((sum(casewhennvl(LS028,-1)<0then1end)/count(1)))*100,2),0)||'%'fromHI36)";这个字符串里怎么才能截取到:nvl(sum(casewhennvl(LS028,-1)<0并且replace成wherenvl(LS028,-1))<0
解决方案
解决方案二:
replace("nvl(sum(casewhennvl(LS028,-1)<0","wherenvl(LS028,-1))<0")
解决方案三:
神回复
解决方案四:
引用1楼Z65443344的回复:
replace("nvl(sum(casewhennvl(LS028,-1)<0","wherenvl(LS028,-1))<0")
不是首先要怎么才能截取nvl(sum(casewhennvl(LS028,-1)<0then1end)
解决方案五:
你这个连规则都没有,空值和负数错误这东西在一个字符串里面怎么判断呢?还是你想要正则的平衡组
解决方案六:
你只说要匹配nvl(sum(casewhennvl(LS028,-1)<0啊为啥要截取它,不是替换掉就完了?除非你要匹配的不是特定的字符串,而是根据某种规则匹配特定特征的一组字符串那么你必须告诉我们根据什么规则啊
解决方案七:
先截取,后替换和直接替换有任何区别???
解决方案八:
引用3楼baidu_24410323的回复:
Quote: 引用1楼Z65443344的回复:
replace("nvl(sum(casewhennvl(LS028,-1)<0","wherenvl(LS028,-1))<0")不是首先要怎么才能截取nvl(sum(casewhennvl(LS028,-1)<0then1end)
没必要先截取nvl....部分,直接repace就行。
解决方案九:
当然,如果再复杂些,比如大小写,空格等不规律的话就麻烦些,直接replace会replace不到。
解决方案十:
引用8楼smthgdin的回复:
当然,如果再复杂些,比如大小写,空格等不规律的话就麻烦些,直接replace会replace不到。
有大小写的问题的话1.可以用正则2.可以调用VB的replace方法,那个不区分大小写
解决方案十一:
楼主说出来的东东,貌似不是想要的东东