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子句。