首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用join语句的DB2更新查询

使用join语句的DB2更新查询
EN

Stack Overflow用户
提问于 2019-06-04 07:16:53
回答 2查看 633关注 0票数 0

我正在尝试更新D_WINTEL_HEALTH表,下面是我正在使用的查询

代码语言:javascript
运行
复制
UPDATE  D_WINTEL_HEALTH A
SET A.HEALTH = 7
FROM D_WINTEL_HEALTH A JOIN D_REPORTER_STATUS B ON A.HOST = B.HOST 
WHERE B.ALERTKEY = 'kph_netport_xlzc_ilo' AND 
B.SEVERITY = 0 AND 
A.HEALTH <> 0 

我还尝试了另一个查询:

代码语言:javascript
运行
复制
UPDATE D_WINTEL_HEALTH A SET A.HEALTH = 7
FROM (Select D_WINTEL_HEALTH A JOIN D_REPORTER_STATUS B 
ON lower(A.HOST) = lower(B.HOST)) s
WHERE s.ALERTKEY = 'kph_netport_xlzc_ilo' AND s.SEVERITY = 0 AND s.HEALTH <> 0 

但这两种方法都返回错误如下:

更新-0行,0.000秒DB2 SQL错误: SQLCODE=-104,SQLSTATE=42601,SQLERRMC=FROM;A SET A.HEALTH =7 ;LEFT_BRACKET,DRIVER=4.15.82

测试了工作良好的select查询,不确定问题是什么,它在IBM中是否不同。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-04 08:29:50

使用合并语句代替。

代码语言:javascript
运行
复制
MERGE INTO D_WINTEL_HEALTH A
USING D_REPORTER_STATUS B ON A.HOST = B.HOST 
AND B.ALERTKEY = 'kph_netport_xlzc_ilo' 
AND B.SEVERITY = 0 AND A.HEALTH <> 0 
WHEN MATCHED THEN UPDATE SET HEALTH = 7;
票数 1
EN

Stack Overflow用户

发布于 2019-06-04 07:36:00

尝试使用下面的查询。

代码语言:javascript
运行
复制
 merge into AD_WINTEL_HEALTH A
   using (select SEVERITY, ALERTKEY from D_REPORTER_STATUS) b
    ON A.HOST = B.HOST
when matched and B.ALERTKEY = 'kph_netport_xlzc_ilo'  and B.SEVERITY = 0 and A.HEALTH <> 0 
   then update SET A.HEALTH = 7 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56439096

复制
相关文章

相似问题

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