比如一张表的记录中有两条是ID CAPTION ADDRESS
X1 郑州市卫生局 111
001 郑州市卫生局 222
。
。
。
。
查找表中ID是X开头的,并且CAPTION 有重复的(最多两个重复,不可能出现三个有 郑州市卫生局的记录) 把那个记录的值赋予ID是X1的
执行完应该是ID CAPTION ADDRESS
001 郑州市卫生局 222
001 郑州市卫生局 222
X1 郑州市卫生局 111
001 郑州市卫生局 222
。
。
。
。
查找表中ID是X开头的,并且CAPTION 有重复的(最多两个重复,不可能出现三个有 郑州市卫生局的记录) 把那个记录的值赋予ID是X1的
执行完应该是ID CAPTION ADDRESS
001 郑州市卫生局 222
001 郑州市卫生局 222
update TABLENAME T1
set (T1.id, T1.ADDRESS) = (select T2.id,
T2.ADDRESS
from TABLENAME T2
where T1.id <> T2.id
and T1.CAPTION = T2.CAPTION)
where substr(T1.id ,1,1) = 'X';
你的语句我执行后提示
ORA-01407:无法更新,,,,,,为NULL的错误提示,请问是怎么回事呢?多谢
UPDATE TABLENAME T1
SET (T1.ID, T1.ADDRESS) = (SELECT T2.ID, T2.ADDRESS
FROM TABLENAME T2
WHERE T1.ID <> T2.ID
AND T1.CAPTION = T2.CAPTION)
WHERE SUBSTR(T1.ID, 1, 1) = 'X'
AND EXISTS (SELECT NULL
FROM TABLENAME T3
WHERE T1.ID <> T2.ID
AND T3.CAPTION = T1.CAPTION);
照你发的sql 可以了,十分感谢。能大概讲讲思路吗?