oracle的update语句问题!
有一个cert表
有字段double_certsn,subject和cert_status
其中相同subject项的列会对应有2条以上的相同数据,但是其中只有一条的double_certsn值不为空。
我想实现的目标是让相同的subject项的所有列的double_certsn都等于那个不为空的值
原来用SQL可以实现,语句如下:
UPDATE A SET
double_certsn=B.double_certsn
FROM cert AS A
JOIN cert AS B
ON A.subject=B.subject
WHERE B.double_certsn IS NOT NULL
AND A.double_certsn IS NULL
AND A.cert_status='use'
go
现在数据库变为oracle了,运行的时候报错,请各位看看,怎么改成oracle
可以运行的语句
------解决方案--------------------update cert t set double_certsn=(select distinct double_certsn from cert a where a.double_certsn is not null and a.subject=t.subject )
这是不考虑cert_status保持一致,如果要的话,可以仿照改下,distinct 为了防止会有两个相同的double_certsn