首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

有一句需要大家给予解释一下,该如何解决

2012-01-26 
有一句需要大家给予解释一下 declare@sqlvarchar(8000)set@sqlselectxhselect@sql@sql+,sum(casekcwhen+

有一句需要大家给予解释一下

declare   @sql   varchar(8000)
set   @sql   =   'select   xh '
select   @sql   =   @sql   +   '   ,   sum(case   kc   when   ' ' '   +   kc   +   ' ' '   then   cj   else   0   end)   [ '   +   kc   +   '] '
from   (select   distinct   kc   from   t)   as   a
set   @sql   =   @sql   +   '   from   t   group   by   xh '
exec(@sql)  


[解决办法]
declare @sql varchar(8000)
set @sql = 'select xh '
select @sql = @sql + ' , sum(case kc when ' ' ' + kc + ' ' ' then cj else 0 end) [ ' + kc + '] '
from (select distinct kc from t) as a
set @sql = @sql + ' from t group by xh '


print @sql --打印出来SQL语句

exec(@sql)


exec 是系统提供的可以执行一个串。
[解决办法]
先改成
declare @sql varchar(8000)
set @sql = 'select xh '
select @sql = @sql + ' , sum(case kc when ' ' ' + kc + ' ' ' then cj else 0 end) [ ' + kc + '] '
from (select distinct kc from t) as a
set @sql = @sql + ' from t group by xh '
print @sql

执行,
再改成
declare @sql varchar(8000)
set @sql = 'select xh '
select @sql = @sql + ' , sum(case kc when ' ' ' + kc + ' ' ' then cj else 0 end) [ ' + kc + '] '
from (select distinct kc from t) as a
print @sql
执行
我想你就基本明白了

热点排行