日期:2014-05-17 浏览次数:20599 次
declare @fname nvarchar(20) --字段名 declare @tbname nvarchar(20) --表名 declare @dfine nvarchar(100) -- declare @value nvarchar(20) --字段值 declare @sql nvarchar(500) --动态语句 declare @returns nvarchar(500) --所有记录合并成一个字符串,返回 declare @split nvarchar(2) --分隔符号 set @fname='gdh_code' set @tbname='tb_gdh' set @value='bjw201200' set @returns='' set @split=',' set @dfine=N'@fname nvarchar(20),@tbname nvarchar(20),@value nvarchar(20),@split nvarchar(2),@returns nvarchar(500) output' set @sql='select @returns=@returns+'+@fname+'+'+''''+@split+''''+' from '+@tbname +' where '+@fname+' like '+'''%'+@value+'%''' print @sql EXECUTE sp_executesql @sql,@dfine,@fname,@tbname,@value,@split,@returns output print @returns
declare @fname nvarchar(20) --字段名 declare @tbname nvarchar(20) --表名 declare @dfine nvarchar(100) -- declare @value nvarchar(20) --字段值 declare @sql nvarchar(500) --动态语句 declare @returns nvarchar(500) --所有记录合并成一个字符串,返回 declare @split nvarchar(2) --分隔符号 set @fname='gdh_code' set @tbname='tb_gdh' set @value='bjw201200' set @returns='' set @split=',' set @dfine=N'@fname nvarchar(20),@tbname nvarchar(20),@value nvarchar(20),@split nvarchar(2),@returns nvarchar(500) output' set @sql='select @returns='+@returns+''+@fname+''+''+@split+''+' from '+@tbname +' where '+@fname+' like '+'''%'+@value+'%''' print @sql /* select @returns=gdh_code, from tb_gdh where gdh_code like '%bjw201200%' */
------解决方案--------------------
我觉得你这拼接好像都嵌套了两层,你看看别人的拼接哪有那么复杂。
http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html