declare @t varchar(100)
set @t='staff_id in(''F80D30'',''E53D6B'',''FC2E0E'',''006204'',''006117'',''006213'',''006220'',''ECFAB0'',''006216'')'
set @t='and '+replace(@t,'''','"')
print @t

解决方案 »

  1.   

    为什么会有这样的需求?
    你在拼动态sql的时候直接写两个单引号不就行了,前一个会作为转义字符处理。
    还有and,你可以初始化 @sqlWhere=' where 1=1 '就行了,以后就不用关心要不要and了。
      

  2.   


    --不晓得你想转换做什么
    staff_id in('F80D30','E53D6B','FC2E0E','006204','006117','006213','006220','ECFAB0','006216') 
    --本来在sql 中要想表现必须
    --如下:
    'staff_id in(''F80D30'',''E53D6B'',''FC2E0E'',''006204'',''006117'',''006213'',''006220'',''ECFAB0'',''006216'')' 
    --如果想转过来可以这样:
    declare @tt nvarchar(200)
    set @tt = 'staff_id in(''F80D30'',''E53D6B'',''FC2E0E'',''006204'',''006117'',''006213'',''006220'',''ECFAB0'',''006216'')' 
    set @tt = 'and '+Replace(@tt,'''','"')
    select @tt
      

  3.   

    那能不能将staff_id in('F80D30','E53D6B','FC2E0E','006204','006117','006213','006220','ECFAB0','006216') 
    变成   'staff_id 
    in(''F80D30'',''E53D6B'',''FC2E0E'',''006204'',''006117'',''006213'',''006220'',''ECFAB0'',''006216'')'
    想通过SQL语句来实现,不想通过语句块来实现,能做到吗?
      

  4.   

    这个'在sql中是敏感字符,要转义的,