首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • SQL语句 [无满意答案结帖]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunyishan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-11-18 13:50:56 楼主
        表:XXX
        字段A:
        内容:TLM_KERL_TZ_1-17-1-0102 
              TLM_KERL_TZ_2-17-2-0102

    怎么变成TLM_KERL_TZ_01-17-01-0102 ,
            TLM_KERL_TZ_02-17-02-0102 ,


    用SQL语句写
    40  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sleepzzzzz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-18 13:58:371楼 得分:0
    其它数据的格式有规律吗?

    SQL code
    --参考下 SQL> select to_char('1','00') from dual; TO_CHAR('1','00') ----------------- 01 SQL> select to_char('11','00') from dual; TO_CHAR('11','00') ------------------ 11 SQL>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • rexyudl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-18 13:59:262楼 得分:0
    叙述一下业务逻辑!
    是否就只有两位?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sleepzzzzz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-18 14:00:443楼 得分:0
    有前导空格,加上fm  -- to_char('1','FM00')
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • linzhangs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-18 14:02:584楼 得分:0
    只针对这两条有效
    SQL code
    SQL> select replace('TLM_KERL_TZ_1-17-1-0102 ','1-','01-') from dual; REPLACE('TLM_KERL_TZ_1-17-1-01 ------------------------------ TLM_KERL_TZ_01-17-01-0102
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xcluii
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-18 15:14:295楼 得分:0
    SQL code
    update XXX t set t.A = substr(t.A, 1, 12) || '0' || substr(t.A, 13, 11)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hdhai9451
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 13:04:476楼 得分:0
    你要更新,先测试查询
    select replace('TLM_KERL_TZ_1-17-1-0102 ','-1-','-01-') from dual;

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiang2003220
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 17:03:097楼 得分:0
    试下这个,复杂了点,结果是可以得到的:
    SQL code
    update 表名 set a=replace(a,substr(a,instr(a,'_',-1,1)-1,2),substr(a,instr(a,'_',-1,1)-1,2)||'0'); update 表名 set a=replace(a,substr(a,instr(a,'-',-1,2)-2,3),substr(a,instr(a,'-',-1,2)-2,3)||'0');
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiang2003220
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 17:04:368楼 得分:0
    执行两条update语句
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiang2003220
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 15:24:059楼 得分:0
    研究了用一条语句实现的:
    SQL code
    update 表名 set a=regexp_replace( a, regexp_substr(a,'[[:digit:]]{1,2}-..-'), rpad(lpad(regexp_subst(a,'[[:digit:]]{1,2}-..-'),6,'0'),7,'0') );

    这个要在oracle 10g中才能运行。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved