Cognos查询计算-如何获取空/空值?

Cognos查询计算-如何获取空/空值?,cognos,cognos-10,cognos-bi,Cognos,Cognos 10,Cognos Bi,我有一个查询计算,它应该向我抛出一个值(如果满足条件)或一个空/空值 代码的格式如下: if([属性]>3) 然后('值') 其他(“”) 目前,我能找到的获得结果的唯一方法是使用“”(即空字符串),但这也是一个值,因此,当我随后在另一个查询中计算不同值的数量时,我会努力获得正确的数字(如果找到空字符串,应将其从计数中删除) 我可以通过以下代码获得结果: ([first_query].[attribute])中的if(attribute='') 然后(计数(不同的(属性)-1) else(计数(

我有一个查询计算,它应该向我抛出一个值(如果满足条件)或一个空/空值

代码的格式如下:

if([属性]>3)
然后('值')
其他(“”)

目前,我能找到的获得结果的唯一方法是使用“”(即空字符串),但这也是一个值,因此,当我随后在另一个查询中计算不同值的数量时,我会努力获得正确的数字(如果找到空字符串,应将其从计数中删除)

我可以通过以下代码获得结果:

([first_query].[attribute])中的if(attribute='') 然后(计数(不同的(属性)-1) else(计数(不同的(属性))


如何在以后所有涉及
属性计数的查询中避免重复计算?

我发现,当
函数:

nullif(1, 1)
案例
当([属性]>3)
然后('值')
结束

不同之处在于,
case when
不需要所有可能的选项来处理数据,如果它发现一个不在列表中的case,它只返回一个空白单元格


非常适合我的需要(在web上的文档记录不如相反的情况,即处理应该为零的空情况)。

我使用这个Cognos函数:

nullif(1, 1)

您也可以使用null,如:CASE WHEN[attribute]>3然后“value”ELSE null END。同样可以使用IF来完成。@Johnsonium我尝试过这种方法,但是我的cognos抛出了一个错误,它不喜欢null作为常量…可能我做错了什么。这很奇怪。我一直都是这样使用null。我知道cognos有时对表达式的确切语法过于挑剔。例如ce,要求在筛选器表达式中的IF中使用ELSE子句。