declare @siteArray nvarchar(max) ---存储用户的所有站点
declare @guid nvarchar(max) ---存储站点的所有产品
set @siteArray=''
--设置用户的所有站点
select
@siteArray=@siteArray+''''+convert(nvarchar(500),Site.ID)+''','
from SiteUser
left join Site on Site.ID=SiteUser.SiteID
where SiteUser.UserID=570
and SiteID IN (select ID from Site where State<>0)
set @siteArray=substring(@siteArray,1,len(@siteArray)-1)
select @siteArray
declare @str nvarchar(max)
set @guid=''
set @str ='select
@temp=@temp + convert(nvarchar(500),Products.guid)
from Products
where siteID in ('+@siteArray+')'
exec sp_executesql @str,N'@temp nvarchar(max) output',@guid output
select @guid
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17140602/viewspace-612007/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17140602/viewspace-612007/
本文介绍了一种使用T-SQL动态构建复杂查询的方法。通过存储用户站点和对应产品的信息,利用字符串连接技巧来动态生成SQL查询语句。该方法允许根据特定条件筛选站点,并获取这些站点上的所有产品GUID。
1604

被折叠的 条评论
为什么被折叠?



