Rup*_*pak 1 sql sql-server join left-join
下面是我的查询,我想检查表A中的记录是否在表B中使用,并基于我返回'Y'和'N'.
SELECT DISTINCT
ca.ID,
IF(da.AM_SYSID IS NULL, 'Y', 'N')
FROM
TABLEA ca
LEFT JOIN
TABLEB da ON ca.ID = da.AM_SYSID
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误
无法绑定多部分标识符.寻找解决方案
我仍然无法看到我的错误.
问题是你的IF命令.
在SQL Server中,IF不是一个函数,即你给出两个参数和一个条件的东西,它返回适当的参数.相反,它会评估条件并开始运行新语句.这不是你想要的.
功能相当于case.因此,你真正想要的(假设你的查询是正确的)是这样的:
SELECT DISTINCT
ca.ID ,
CASE
WHEN da.AM_SYSID IS NULL
THEN 'Y'
ELSE 'N'
END
FROM
TABLEA ca
LEFT JOIN
TABLEB da ON ca.ID = da.AM_SYSID
Run Code Online (Sandbox Code Playgroud)