SQL:使用CASE后,IN @parameter列出现错误

时间:2018-08-31 07:51:18

标签: sql sql-server

正如标题所述,我遇到以下SQL错误

  

第156条消息,第15级,状态1,第14行
  关键字“ IN”附近的语法不正确

我使用IN关键字的地方是

AND (CASE WHEN (@client IS NOT NULL)
        THEN ([Client] IN @client)
     END)

@client的声明如下:

declare @client varchar(50)

但是,我尝试将@client替换为('Text', 'Text', 'Text'),但仍然无法正常工作。

我在互联网上搜索了一下,却找不到确切的原因。

此外,@client参数将在C#程序中设置为字符串列表。

谢谢。

1 个答案:

答案 0 :(得分:2)

考虑到您正在通过C#传递这样的逗号分隔值单个字符串

find()

并将其放入您的"Text,Text,Text" 变量中, 因此基本上您的@client将设置为该字符串

@client

您可以做这样的事情

@client='Text,Text,Text'