#问题遇到的现象和发生背景
初体的就是需要截取的信息,最后是拼接好的字段
他权00309 513321001006GB00016F00130002 32151332100309
他权00309 513321001006GB00777F00170001 32151332100309
他权00309 513321001006GB00016F00120002 32151332100309
他权00309 513321001006GB00777F00180001 32151332100309
他权00321 513321001005GB00171F00020005 32151332100321
我的解答思路和尝试过的方法
UPDATE XS_DYAQ SET bdcdyysdm = (select substr(BDCQZH,3,4 ) value from XS_DYAQ) + (select substr(ysdm,1,1 ) value from XS_DYAQ) where ysdm='1'
运行后报错是单行修改语句返回多条查询结果
求大家帮忙看看,帮给个实行办法
UPDATE XS_DYAQ SET bdcdyysdm = concat( substr(BDCQZH,3,4 ) , substr(ysdm,1,1 ) ) where ysdm='1'
这样可行否?
子查询要带上XS_DYAQ表的条件,确保子查询只能查询一条记录出来。
你更新的原始字段来自于自己表的的本行,就没表要再去select一次了。
另外,在oracle数据库中,字符串拼接是使用两个管道符 || ,当然也可以使用concat函数,比如下面这个查询
select bdcdyysdm ,substr(BDCQZH,3,4 )||substr(ysdm,1,1 ) from XS_DYAQ where ysdm='1'
然后你的目的是把这个查询的第二列更新到第1列上去,所以转换成update语句就是下面这样写的
UPDATE XS_DYAQ SET bdcdyysdm = substr(BDCQZH,3,4 )||substr(ysdm,1,1 ) where ysdm='1'
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!