读书人

又是行列转换有关问题

发布时间: 2012-02-06 15:52:45 作者: rapoo

又是行列转换问题
declare @sql varchar(4000)
set @sql = 'select Name'
select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from CJ) as a
select @sql = @sql+' from test group by name'
exec(@sql)

怎么不支持nvarhcar,怎么办??

[解决办法]
管用吗?它老是提醒 SUM不支持nvarchar
go
Result 列有非数字字符

select * from test where
isnumeric(Result)=0

go
--防止Result有空值
then Result end
改为
then Result else 0 end

[解决办法]
declare @sql varchar(4000)
set @sql = 'select Name '
select @sql = @sql + ',sum(case Subject when ' ' '+Subject+ ' ' ' then Result end) [ '+Subject+ '] '
from (select distinct Subject from CJ) as a
select @sql = @sql+ ' from test group by name '
exec(@sql)
--------------------------------------------
你使用了两个不同的库,CJ,TEST,肯定不行.
另:如果对nvarchar不起作用,可用cast(nvarchar字段 as varchar)即:
case Subject when '''+cast(Subject as varchar)+ '''

读书人网 >SQL Server

热点推荐