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分送上
展开
 我来答
fafakkandyaer
2013-12-02 · TA获得超过298个赞
知道小有建树答主
回答量:266
采纳率:100%
帮助的人:176万
展开全部
我拿其中一个来举例子
select lpad('0000'+SUBSTR('JC-2013-0005',9,12)-4,4,0) from dual;
运行结果 0001
里面的SUBSTR函数就不说了,然后截取的结果-4是你需要的记过,然后对这个结果进行字符串处理,就是要用到LPAD函数(我用的是oracl数据库,其它数据库的话会有个left和right函数来进行相应的处理,这里就以oracle为例),三个参数,第一个参数是你要处理的值,第二个参数表示最后的处理结果一共有几位,第三个参数表述如果达不到规定的位数的话用哪个字符进行填充。
清楚没?我们这里就规定的最后结果为4位,不够就用0填充,对不对?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友183c468
2013-12-02 · TA获得超过209个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:127万
展开全部
将字符串截取成不必修改和想要修改的2个字符串,然后修改后一个字符串,再拼接起来就可以了
修改时如果有一定规律,比如肯定是数值,肯定是按顺序依次减少4,
那么可以to_char(to_number(str2)-4,'0999'),如果还有别的逻辑,
那可能要写存储过程一步一步处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-12-02 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5168万
展开全部
什么数据库,什么版本,按什么顺序修改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小狂中E
2013-12-02 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1031万
展开全部
什么数据库呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式