当前位置: 代码迷 >> Sql Server >> 大神指点下这个SQL字符串如何拼接
  详细解决方案

大神指点下这个SQL字符串如何拼接

热度:35   发布时间:2016-04-24 09:04:53.0
大神指点下这个SQL字符串怎么拼接?

如何把第一次取出来的结果拼进SQL字符串
declare @strs varchar(8000)
select @strs=isnull(@strs+',','')+substring(pt,len(pt)+2-charindex('/',reverse(pt)),charindex('.',pt)-len(pt)-2+charindex('/',reverse(pt))) from (select distinct pt from vc) as t
select @strs 

declare @str nvarchar(99) select @str= vc.pt from vc
declare @hz nvarchar(99) set @hz=reverse(@str)
declare @cn nvarchar(22) set @cn=substring(@str,charindex('/',@hz)+1,charindex('.',@hz)-1)
declare @sql nvarchar(222) set @sql='select vc.*'
--select @sql=@sql+','+@cn+'s.* from vc left join '+@cn+'s on vc.id='+@cn+'s.id'这里是错的,
select @sql='select vc.*, tabs.*,lists.* from vc left join  tabs on vc.id= tabs.id left join lists on vc.id=lists.id'--请问想拼成这样,怎么拼?
exec sp_executesql @sql

------解决思路----------------------
DECLARE @SQL VARCHAR(8000),@FROM VARCHAR(8000)
SET @SQL='SELECT vc.*'
SET @FROM=''
SELECT @SQL=@SQL+','+TBN+'s.*'
,@FROM=@FROM+' LEFT JOIN '+TBN+'s ON vc.id='+TBN+'s.id'
FROM(
SELECT SUBSTRING(pt,LEN1,LEN2-LEN1)TBN FROM(
SELECT pt,LEN(pt)+2-charindex('/',reverse(pt))LEN1,charindex('.',pt)LEN2
FROM vc
)T
GROUP BY SUBSTRING(pt,LEN1,LEN2-LEN1)
)TT
SET @SQL=@SQL+' FROM vc'+@FROM
--PRINT @SQL
EXEC(@SQL)
try
  相关解决方案