【发布时间】:2017-12-22 20:03:02
【问题描述】:
我正在写一个INNER JOIN,其中添加了 CompanyId 等字段。
但是在我的CASE 里面的INNER JOIN 我在WHERE 之后得到一个错误
IR.MyId 和 ICB1.MyId 上的错误说
“无法绑定多部分标识符”
我对这个查询的意图是在INNER JOIN 中添加一个CASE。
所以第一列是A.CompanyId。第二列将是 CASE 语句,用于检查 ID 是否存在于另一个表中。如果没有,它将执行另一个SELECT 语句,否则只需MyID。
但我在CASE WHEN 内的SELECT COUNT(*) 上遇到错误。
感谢任何帮助。谢谢。
INNER JOIN
(SELECT DISTINCT
A.CompanyId,
CASE
WHEN (SELECT count(*)
FROM Table1 IBC1
WHERE IR.MyId = ICB1.MyId) == 0
THEN 1
ELSE 0
END
FROM
cmp.CompanyNews A) E ON NP.CompanyId = E.CompanyId
【问题讨论】:
-
case when (SELECT count(*) FROM Table1 IBC1 WHERE IR.MyId = ICB1.MyId ) == 0将==替换为= -
尝试为您的案例添加标识符:
THEN 1 else 0 END as NameOfIdentifier -
@John 请提供完整的查询,并为您使用的 RDBMS 添加标签(sql-server,oracle,...)
-
哪里没有像 IR 这样的别名
标签: sql-server join case