oracle函数的应用方法!!

TEST表的数据是

编号           型号    检验
T082070420001,QQQQQQ,3Q
T082070420002,QQQQQQ,2W
T082070420003,QQQQQQ,3Q
T082070420004,QQQQQQ,3Q


现在我想把编号改为如下:(将08200724改为88200724)
T882070420001,QQQQQQ,3Q
T882070420002,QQQQQQ,2W
T882070420003,QQQQQQ,3Q
T882070420004,QQQQQQ,3Q


这样的SQL合理吗?

update test set 编号=REPLACE(SUBSTR('编号',2,7),'082070420001','882070420001') where 检验='3Q'
我也来说两句 查看全部回复

最新回复

  • hjwb1216 (2008-7-24 14:57:50)

    08200724改为88200724
    怎么又整成08200721了?

    [ 本帖最后由 hjwb1216 于 2008-7-24 15:04 编辑 ]
  • live_oracle (2008-7-24 15:49:10)

    08200721   ??

    没有弄明白。。能够详细的说下吗?
  • hjwb1216 (2008-7-24 16:06:59)

    呵呵,不好意思,看错了,
    where 检验='3Q'
    出来的数据出来

    T882070420002,QQQQQQ,2W


    update test set 编号=REPLACE(SUBSTR('编号',2,1),'0,'8')
    后面的条件,你就根据业务自己加好了
  • live_oracle (2008-7-24 17:15:36)

    这样真的可以吗?
  • live_oracle (2008-7-24 17:16:32)

    现在只有一个编号需要修改,如果有多个的话,有没有什么简便的方法!!
  • live_oracle (2008-7-26 23:13:01)

    不能够更新,所在的行。这个似乎有问题
  • live_oracle (2008-7-26 23:35:59)

    sql> select * from tt;
    BH                   XH                   JY
    -------------------- -------------------- --------------------
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               2W

    已选择10行。


    SQL> update tt set bh = replace(substr('bh',2,7),'08207042','88207042') where jy
    ='2W'
      2  /

    已更新 1 行。

    SQL>select * from tt;

    BH                   XH                   JY
    -------------------- -------------------- --------------------
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    T082070420001        QQQQQQ               3Q
    h                    QQQQQQ               2W

    已选择10行。

    为什么结果变成了H,而不是T882070420001。谁能给我解释下啊!!

    [ 本帖最后由 live_oracle 于 2008-7-27 00:02 编辑 ]
  • live_oracle (2008-7-27 00:14:02)

    问题已经解决。。。'bh' 不能要引号。。哎