[英]SQL Server Using Case With Two Matching Tables
I have two tables:我有两张桌子:
Matching filter table contains columns must be matched with same columns in the Accounts
table if MATCHING COLUMNS IS SET, where -1 not set value and other value is set value.如果 MATCHING COLUMNS IS SET,匹配筛选表包含的列必须与
Accounts
表中的相同列匹配,其中 -1 未设置值,其他值是设置值。
Using CASE
with WHERE
clause was not successful with my code在我的代码中使用带有
WHERE
子句的CASE
不成功
This is my attempt:这是我的尝试:
SELECT A.*
FROM dbo.App_Account_Match_Filter F
INNER JOIN dbo.App_Accounts_Data A ON F.Apm_File_Type_LK <> A.Apa_File_Type_LK
WHERE F.Apm_ID = 1
CASE WHEN F.Apm_Nationality_LK <> -1 THEN A.Apm_Nationality_LK = F.Apa_Nationality_LK END
CASE
is an expression , it returns a scalar value not a boolean value. CASE
是一个表达式,它返回一个标量值而不是 boolean 值。 You need to use proper boolean logic.您需要使用正确的 boolean 逻辑。 Seeing as you don't have a
ELSE
in your CASE
expression it seems you just need this:看到您的
CASE
表达式中没有ELSE
,您似乎只需要这个:
SELECT A.*
FROM dbo.App_Account_Match_Filter F
INNER JOIN dbo.App_Accounts_Data A ON F.Apm_File_Type_LK <> A.Apa_File_Type_LK
WHERE F.Apm_ID = 1
AND F.Apm_Nationality_LK <> -1
AND A.Apm_Nationality_LK = F.Apa_Nationality_LK;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.