我有两张桌子:
table
如果设置了匹配列,则匹配筛选表包含的列必须与Accounts表中的相同列匹配,其中-1未设置值和其他值为设置值。
在我的代码中使用CASE和WHERE子句并不成功
这是我的尝试:
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发布于 2019-11-03 13:35:58
CASE是一个表达式,它返回一个标量值而不是一个布尔值。您需要使用正确的布尔逻辑。考虑到在您的ELSE表达式中没有一个CASE,您似乎只需要这样做:
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;https://stackoverflow.com/questions/58680638
复制相似问题