set @str='select s_dwjc'  --这里是@str,下面是@str1,变量用错了吧?
select @str1=@str1+',(cast s_zhlbmc  when '''+ltrim(rtrim(s_zhlbmc))+''' then 1 end ) as ['+ltrim(rtrim(s_zhlbmc))+']' from  (select distinct s_zhlbmc from kl_zh) as a1