在MSSQL中使用动态IN子句

前端之家收集整理的这篇文章主要介绍了在MSSQL中使用动态IN子句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么以下sql不能获取任何东西
DECLARE @Status AS VARCHAR(400)
SET @status = '''Closed'',''OPEN'''
select * from MYTABLE where status in(@status)

虽然如此
从MYTABLE中选择*,其中(‘Closed’,’Open’)中的状态会提取

解决方法

如果你想做一些动态sql你可以,但我认为它不是真正有竞争力的..
DECLARE   @Status nVARCHAR(400),@sql nvarchar(500)

SET @status = '''Closed'''+','+'''OPEN'''
set @sql = '
select * from [MYTABLE] where status in('+@status +')'

 exec sp_executesql @sql
GO

猜你在找的MsSQL相关文章