如何使用简单的Join语句更新具有不同值的列?

Loo*_*ers 2 sql t-sql sql-server sql-server-2012

我有两个表,我在它们之间使用简单的连接条件.

我需要找到常用值并将String(Success)更新到列中.

input_table1:

ID   ||  Name   ||  output
1    ||  ABS    ||   Null
2    ||  ADF    ||   NULL
3    ||  AQS    ||   Null
4    ||  ATF    ||   NULL
5    ||  APS    ||   Null
6    ||  AMF    ||   NULL
Run Code Online (Sandbox Code Playgroud)

Input_table2:

ID   ||  Name   
1    ||  ABS    
2    ||  ADF   
6    ||  AMF    
Run Code Online (Sandbox Code Playgroud)

Output_table:这是我需要的输出.

ID   ||  Name   ||  output
1    ||  ABS    ||   Success
2    ||  ADF    ||   Success
3    ||  AQS    ||   Null
4    ||  ATF    ||   NULL
5    ||  APS    ||   Null
6    ||  AMF    ||   Success.
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的查询,这是错误是接收 在预期条件的上下文中指定的非布尔类型的表达式,接近'Then'.

update .[dbo].[InputTable1] 
set Output= 
case when (
select INT.ID
from [dbo].[input_table1] INT
join [dbo].[input_table2] SHB
on INT.ID=SHB.ID
) Then 'Success' Else Null End
Run Code Online (Sandbox Code Playgroud)

Dhr*_*shi 5

你的查询应该只是

update INT
set Output= 'Success'
FROM
[dbo].[input_table1] INT
join [dbo].[input_table2] SHB
on INT.ID=SHB.ID
Run Code Online (Sandbox Code Playgroud)

See working demo