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)
怎么又整成08200721了?
[ 本帖最后由 hjwb1216 于 2008-7-24 15:04 编辑 ]
live_oracle (2008-7-24 15:49:10)
没有弄明白。。能够详细的说下吗?
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)
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)