列出 [a,b,c] 到 a,b,c

List [a,b,c] to a,b,c

我收到一个带有此参数的过程:

exec do_something [a,b,c]

我需要进行如下查询:

 select * from B where b not in ("a","b","c")

我该如何进行这种转换?

quick/easy 解决方案是使用 str_replace() 函数重新格式化输入参数,然后使用所述修改后的参数构建动态查询,例如:

declare @param varchar(100),
        @query varchar(1000)

select  @param = 'a,b,c'

select  @param = '"' + str_replace(@param,',','","') + '"'

print   "@param: %1!",@param

select  @query = 'select * from B where b not in (' + @param + ')'

print   "@query: %1!",@query

exec(@query)
go

@param: "a","b","c"
@query: select * from B where b not in ("a","b","c")

.... results of running query .....