空白值总和

时间:2019-05-21 13:32:53

标签: sql sql-server

如何在SQL Server中对空白值求和?

我尝试了以下操作,但返回null

Declare @val varchar
Declare @columns varchar(20) 
declare @sql varchar(200)
set @columns= 'branch'

set @sql  = 'select ' + @val +'= sum(case when @columns = '''' then 1 else 0 end)
         from dbo.companies'
exec(@sql)
select @val

我需要一个动态SQL语句,因为将从存储过程中为每一列返回值。

1 个答案:

答案 0 :(得分:1)

在黑暗中完全刺伤,但我认为,您追求的是:

tibble

编辑:请注意,tibble(var = vect) # A tibble: 3 x 1 # var # <dbl> #1 1 #2 2 #3 3 DECLARE @Count int, @Column sysname; DECLARE @SQL nvarchar(MAX); SET @Column = N'SomeColumnName'; SET @SQL = N'SELECT @Count = COUNT(CASE ' + QUOTENAME(@Column) + N' WHEN '''' THEN 1 END) FROM dbo.companies;'; EXEC sp_excutesql @SQL, N'@Count int OUTPUT',@Count = @Count OUTPUT; SELECT @Count; 的值不同;您似乎不知道要考虑将变量(数据类型''的变量NULL与值@Val连接到文字字符串的位置。 varchar(1)。如果您想用NULL计算行数,则NULL + {expr} = NULL不能是空字符串(并且您需要移动NULL)。