在MSSQL中使用动态IN子句

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

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

解决方法

如果你想做一些动态sql你可以,但我认为它不是真正有竞争力的..
  1. DECLARE @Status nVARCHAR(400),@sql nvarchar(500)
  2.  
  3. SET @status = '''Closed'''+','+'''OPEN'''
  4. set @sql = '
  5. select * from [MYTABLE] where status in('+@status +')'
  6.  
  7. exec sp_executesql @sql
  8. GO

猜你在找的MsSQL相关文章