无法在SQL中绑定多部分标识符

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)

但是我收到了一个错误

无法绑定多部分标识符.寻找解决方案

我仍然无法看到我的错误.

Geo*_*tis 5

问题是你的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)