D
drifer
Unregistered / Unconfirmed
GUEST, unregistred user!
有这样一个问题,大家都知道交叉表就是用一个递归查询来从另一个得到一个列的数据,<br> declare @sql varchar(8000) <br> set @sql = 'select name,' <br> select @sql = @sql + 'sum(case subject when ''+subject+'' --这是一个递归 <br> then source else 0 end) as ''+subject+'',' <br> from (select distinct subject from test) as a<br> select @sql = left(@sql,len(@sql)-1) + ' from test group by name'<br> exec(@sql)<br> 但如果另一个表的数据很大,那么@sql的字符长度就不够了(超过8000个字符),请问能有什么方法优化这个查询呢?