簡體   English   中英

SQL 服務器使用案例有兩個匹配表

[英]SQL Server Using Case With Two Matching Tables

我有兩張桌子:

  1. 帳戶表
  2. Matching_Filter 表

如果 MATCHING COLUMNS IS SET,匹配篩選表包含的列必須與Accounts表中的相同列匹配,其中 -1 未設置值,其他值是設置值。

在我的代碼中使用帶有WHERE子句的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
      CASE WHEN F.Apm_Nationality_LK <> -1 THEN  A.Apm_Nationality_LK = F.Apa_Nationality_LK END

CASE是一個表達式,它返回一個標量值而不是 boolean 值。 您需要使用正確的 boolean 邏輯。 看到您的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM