将NULL替换为数据透视查询中的其他消息

时间:2018-01-14 15:06:49

标签: sql sql-server sql-server-2014

我想在else块中输入“NA”而不是null。 这样做的任何方式?

select @query = coalesce(@query, '') + 
          N',max(case when A.[Date] = ''' + 
          cast(cte.startdate as nvarchar(20)) + 
          N''' then A.Attendance end) ' + 
          quotename(convert(char(6), cte.startdate,106))

1 个答案:

答案 0 :(得分:1)

max()后,您需要 所以我想你想要:

coalesce(max(case when A.[Date] = @Date then A.Attendance end), 'N/A')

这假定Attendance是一个字符串。否则,您有类型错误。

我还应该注意,在SQL字符串中嵌入值绝对不是一个好习惯。你应该使用参数。在SQL Server中,您可以使用exec sp_executesql而不是exec来完成此操作。