2017-01-29 9 views
0

次の行を使用しようとすると、次のようになります。 "キーワード 'IN'の近くに構文が正しくありません。"
ケースのTHENでINステートメントを使用

WHERE 
    CASE 
     WHEN @CostCentreID IS NOT NULL THEN CI.CostCentreID IN(SELECT CAST(Item AS INTEGER) FROM dbo.SplitString(@CostCentreID, ',')) 
    END  

何が間違っているかわかりません。

THENコマンドは、CASE文の外部で正常に動作します。私はNULLエントリをキャプチャしようとしています。 NULLの場合は、チェックをスキップします。

答えて

1

あなたは

WHERE @CostCentreID IS NULL 
    OR CI.CostCentreID IN (
          SELECT CAST(Item AS INTEGER) 
          FROM dbo.SplitString(@CostCentreID, ',') 
         ) 
.....のようなあなたのWHERE句の何かを書くことができます
関連する問題