--1
declare @stcdList varchar(200)
set @stcdList='50100100,50103100,50103000' 
declare @sql varchar(8000) 
set @sql='select stcd from A where stcd in ('+@stcdList+')' 
exec(@sql) 
--2說詳細點

解决方案 »

  1.   

    1怎么出错了
    declare @stcdList varchar(200)
    set @stcdList='50100100,50103100,50103000' 
    declare @sql varchar(8000) 
    set @sql='select distinct stcd from ST_PPTN_R where stcd in ('+@stcdList+')' 
    exec(@sql)
      

  2.   

    将 varchar 值 '990A6666' 转换为数据类型为 int 的列时发生语法错误。
      

  3.   

    1沒有錯,我是說,如果@stcdList='50100100,50103100,50103000'裡面如果全是數值型字符,沒必要 
    這樣 in('50100100','50103100','50103000' )可以直接 in(50100100,50103100,50103000)
      

  4.   

    declare @stcdList varchar(200)
    set @stcdList='50100100,50103100,50103000' 
    set @stcdList= replace(@stcdList,',',''',''')
    declare @sql varchar(8000) 
    set @sql='select stcd from A where stcd in ('''+@stcdList+''')' 
    exec(@sql)