SQL截取字符串后4位,JC-2013-0005然后将后四位按顺序修改为0001,0002,0003 20
有JC-2013-0005,JC-2013-0006,JC-2013-0007,JC-2013-0008,我要将他们按顺序修改为0001,0002,0003,0004.将...
有JC-2013-0005,JC-2013-0006,JC-2013-0007,JC-2013-0008,我要将他们按顺序修改为0001,0002,0003,0004.将近100条数据。我会截取,但是不会将截取的数据修改。
求高手赐教,满意100分送上 展开
求高手赐教,满意100分送上 展开
4个回答
展开全部
我拿其中一个来举例子
select lpad('0000'+SUBSTR('JC-2013-0005',9,12)-4,4,0) from dual;
运行结果 0001
里面的SUBSTR函数就不说了,然后截取的结果-4是你需要的记过,然后对这个结果进行字符串处理,就是要用到LPAD函数(我用的是oracl数据库,其它数据库的话会有个left和right函数来进行相应的处理,这里就以oracle为例),三个参数,第一个参数是你要处理的值,第二个参数表示最后的处理结果一共有几位,第三个参数表述如果达不到规定的位数的话用哪个字符进行填充。
清楚没?我们这里就规定的最后结果为4位,不够就用0填充,对不对?
select lpad('0000'+SUBSTR('JC-2013-0005',9,12)-4,4,0) from dual;
运行结果 0001
里面的SUBSTR函数就不说了,然后截取的结果-4是你需要的记过,然后对这个结果进行字符串处理,就是要用到LPAD函数(我用的是oracl数据库,其它数据库的话会有个left和right函数来进行相应的处理,这里就以oracle为例),三个参数,第一个参数是你要处理的值,第二个参数表示最后的处理结果一共有几位,第三个参数表述如果达不到规定的位数的话用哪个字符进行填充。
清楚没?我们这里就规定的最后结果为4位,不够就用0填充,对不对?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将字符串截取成不必修改和想要修改的2个字符串,然后修改后一个字符串,再拼接起来就可以了
修改时如果有一定规律,比如肯定是数值,肯定是按顺序依次减少4,
那么可以to_char(to_number(str2)-4,'0999'),如果还有别的逻辑,
那可能要写存储过程一步一步处理。
修改时如果有一定规律,比如肯定是数值,肯定是按顺序依次减少4,
那么可以to_char(to_number(str2)-4,'0999'),如果还有别的逻辑,
那可能要写存储过程一步一步处理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么数据库,什么版本,按什么顺序修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么数据库呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询