我要动态拼接查询字符串并执行,应该怎么做呢?
CREATE TABLE #t(k char(10))
DECLARE @sql varchar(800)
set @sql ='select * FROM [NEWS] CROSS JOIN #t WHERE KeyWord LIKE ''%#t.k%'''
       exec(@sql )如果我这样写,#t.k,貌似会变成一个字符串了。。
但是如果我想实现KeyWord列的值包含临时表#t的k列的值,上面的应该怎么改呢。。?
请指教!~~谢谢~~~~

解决方案 »

  1.   

    直接select * FROM [NEWS] CROSS JOIN #t WHERE KeyWord LIKE '%' + rtrim(#t.k) + '%'
      

  2.   

    最好临时表字段用varchar类型,不必用rtrim函数
      

  3.   

    那就脱裤子放屁吧CREATE TABLE #t(k char(10))
    DECLARE @sql varchar(800)
    set @sql ='select * FROM [NEWS] CROSS JOIN #t WHERE KeyWord LIKE ''%'' + rtrim(#t.k) + ''%'''
      exec(@sql )
      

  4.   

    declare @s varchar(8000)
    set @s=''
    select @s=@s+#t.k+',' FROM [NEWS] CROSS JOIN #t WHERE KeyWord LIKE '%'+#t.k+'%'
    print @s