在with varchar中,sql server不起作用

fdbelqdn  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(274)

下面的代码是抛出错误

declare @test varchar(100)='20,201,202,288'
SELECT * from Business where Businessid in (@test)

i、 e.将varchar值“20201202288”转换为数据类型int时,转换失败。
我怎么能让它工作,我不明白,可能是我的大脑不能再思考了。。

2w3rbyxf

2w3rbyxf1#

你可以用 string_split() :

select *
from Business
where Businessid in (select value from string_split(@test, ','));

将字符串与表中的值列表混淆 in 列表。他们不是一回事。

mbzjlibv

mbzjlibv2#

我们可以用 string_splitSQL Server 2016 and later versions 只有这样,我才能选择更灵活的任何版本的动态查询

DECLARE @test VARCHAR(100) = '20,201,202,288', @sql VARCHAR(250)

SET @sql = '
SELECT * 
FROM Business 
WHERE Businessid IN (' + @test + ')'

EXEC(@sql)

相关问题