首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

SQL存储过程行转列 有空值怎么办

2012-04-25 
SQL存储过程行转列 有空值怎么处理CJ表张三语文80张三数学100张三物理79JIM物理100MACKDJ100MACKNULLNULL

SQL存储过程行转列 有空值怎么处理
CJ表
张三语文80
张三数学100
张三物理79
JIM物理100
MACKDJ100
MACKNULLNULL

存储过程

SQL code
set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER PROCEDURE [dbo].[pro_ROWTOCOL]     -- Add the parameters for the stored procedure hereASBEGIN    -- SET NOCOUNT ON added to prevent extra result sets from    -- interfering with SELECT statements.    SET NOCOUNT ON;    -- Insert statements for procedure here    declare @sql varchar(4000)    set @sql = 'select Name'    select @sql = @sql + ',isnull(sum(case Subject when '''+Subject+''' then Result end),0) ['+Subject+']'    from (select distinct Subject from CJ) as a    select @sql = @sql+' from cj group by name'    exec(@sql)END


[解决办法]
这个有点困难
[解决办法]
你还没说你的问题出在哪儿?。。。
[解决办法]
select distinct Subject from CJ where subject is not null
[解决办法]
MACK NULL NULL 
既然连课程都没有还有统计的价值吗?

直接 where 课程 is not null
[解决办法]
case when 字段 is null then '未定义' else 字段 end
[解决办法]
sum(case Subject when '''+Subject+''' then Result end),0) ['+Subject+']

=>

max(case when Subject='''+Subject+''' then Result when Subject isnull then '未定义' end) as ['+Subject+']'
[解决办法]
你可以用代码直接得到结果循环插入不就行了吗,非得用存储过程吗,不是都是以解决问题为主吗

你可以试试呀


[解决办法]
isnull(字段,0)
[解决办法]

[解决办法]
这个有点困难

热点排行