更新唯一表SQL
你好,我有这张桌子更新唯一表SQL,sql,oracle,exists,Sql,Oracle,Exists,你好,我有这张桌子 ADDR | STATE | ID CRA.20 15 | REP | (null) CRA.20 15 | REP | (null) CRA.20 15 | REP | (null) CRA.20 15 | PRI | RR_88_JK 我需要把这张桌子改一下 ADDR | STATE | ID CRA.20 15 | REP | RR_88_JK CRA.20 15 | REP | RR
ADDR | STATE | ID
CRA.20 15 | REP | (null)
CRA.20 15 | REP | (null)
CRA.20 15 | REP | (null)
CRA.20 15 | PRI | RR_88_JK
我需要把这张桌子改一下
ADDR | STATE | ID
CRA.20 15 | REP | RR_88_JK
CRA.20 15 | REP | RR_88_JK
CRA.20 15 | REP | RR_88_JK
CRA.20 15 | PRI | RR_88_JK
我有这个QRY,但没有功能。你有一个主意吗
UPDATE TABLE_A A
SET a.ID = b.ID
WHERE EXISTS
(SELECT b.ID
FROM TABLE_A B
WHERE a.ADDR = B.ADDR AND b.STATE = 'PRI')
and A.STATE = 'REP';
谢谢。您需要一个子查询来设置值:
UPDATE TABLE_A A
SET a.ID = (SELECT b.ID
FROM TABLE_A B
WHERE a.ADDR = B.ADDR AND b.STATE = 'PRI' AND rownum = 1
)
WHERE EXISTS (SELECT b.ID
FROM TABLE_A B
WHERE a.ADDR = B.ADDR AND b.STATE = 'PRI'
) AND
A.STATE = 'REP';
B
仅在子查询中已知,而在外部查询中未知。您需要子查询来设置值:
UPDATE TABLE_A A
SET a.ID = (SELECT b.ID
FROM TABLE_A B
WHERE a.ADDR = B.ADDR AND b.STATE = 'PRI' AND rownum = 1
)
WHERE EXISTS (SELECT b.ID
FROM TABLE_A B
WHERE a.ADDR = B.ADDR AND b.STATE = 'PRI'
) AND
A.STATE = 'REP';
B
仅在子查询中已知,而不在外部查询中已知。以下操作将满足您的要求:
UPDATE TABLE_A A
SET a.ID = (SELECT MIN(ID)
FROM TABLE_A
WHERE ID IS NOT NULL AND
STATE = 'PRI')
WHERE ID IS NULL AND
STATE = 'REP'
祝你好运。以下内容将满足你的要求:
UPDATE TABLE_A A
SET a.ID = (SELECT MIN(ID)
FROM TABLE_A
WHERE ID IS NOT NULL AND
STATE = 'PRI')
WHERE ID IS NULL AND
STATE = 'REP'
祝您好运。您好,我使用此qry,但不使用函数。ORA-01427:单行子查询返回多行。我理解这个问题,但没有遇到这个错误。@SantiagoEspitia。显然,有些
addr
值有两行或更多的'pri'
行。和rownum=1
任意选择其中一个。您好,我使用这个qry函数,但不使用它。ORA-01427:单行子查询返回多行。我理解这个问题,但没有遇到这个错误。@SantiagoEspitia。显然,有些addr
值有两行或更多的'pri'
行。和rownum=1
可以任意选择其中一个。