首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新唯一表SQL

更新唯一表SQL
EN

Stack Overflow用户
提问于 2017-07-08 06:35:11
回答 2查看 34关注 0票数 0

您好我有这张桌子。

代码语言:javascript
复制
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

我需要把这张桌子改造一下。

代码语言:javascript
复制
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,但没有函数。你有一个想法吗?

代码语言:javascript
复制
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';

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-07-08 06:36:41

您需要一个子查询来设置值:

代码语言:javascript
复制
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仅在子查询中是已知的,在外部查询中是未知的。

票数 1
EN

Stack Overflow用户

发布于 2017-07-08 10:31:35

下面的代码将执行您想要的操作:

代码语言:javascript
复制
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'

祝你好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44980595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档