【发布时间】:2020-03-31 01:53:33
【问题描述】:
我需要从两个表(客户端和活动)中找到匹配的 id,并将表客户端中的(clientid)列中的数据更新到另一个表(活动)的同一列(id):
update activity
set a.clientid = r.clientid
where (select r.clientid, r.id
from request r
where exists(select a.activityid from activity a where (a.id = r.id))
抛出异常
在预期条件的上下文中指定的非布尔类型的表达式,靠近 ')'
【问题讨论】:
-
where exists()必须是where exists() = 1- 您需要将此exists表达式与BIT值(0 或 1)进行比较 -
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出您可以给出的最少代码,即您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask 停止尝试编写您的总体目标并从给定的代码中解释您的期望以及原因。
-
缺少
)。如果那是一个帖子组合错字而不是你跑的——你检查过手册中的语法和限制吗?始终阅读您正在使用的手册重新功能。
标签: sql sql-server join sql-update