祝大家早日/晚安。我是存储过程的新手,在存储过程方面我缺乏经验和理解。我尝试了其他教程和答案,但我不知道为什么我的查询在使用 isnull(payment,'0') 或 coalesce(payment,'0') 时不起作用。
declare @sql as nvarchar(max) = '[2013-04-01],[2013-04-02],[2013-04-03],[2013-04-04],[2013-04-05],[2013-04-06]';
declare @name as nvarchar(max) = 'Derichel'
set @sql =
'SELECT pid, [Fullname], ' + @sql + '
FROM
(SELECT pid, [Fullname], payment, dateregistration
from tbl_Personal
) AS s
PIVOT
(
min(payment)
FOR dateregistration IN (' + @sql + ')
) AS pvt
where [Fullname] = ''' + @name + '''
order by pid'
execute sp_executesql @sql;
一些答案和教程在 IN () 中有固定列。我的@sql 已设置为不同的日期(这取决于来自 gui 的用户输入)。
如何将空值替换为 0?
上面代码的输出是
pid Fullname [2013-04-01] [2013-04-02] [2013-04-03] [2013-04-04] [2013-04-05] [2013-04-06]
6 Derichel NULL NULL NULL NULL NULL 0
我想将null替换为0。