我有一个查询计算,它应该给我一个值(如果符合条件)或空值/空值。
代码采用以下形式:
if([attribute] > 3)
then ('value')
else ('')
目前我能找到获得结果的唯一方法是使用'' (即一个空字符串),但这也是一个值,所以当我随后计算另一个查询中不同值的数量时,我很难得到正确的数字(如果找到,则应从计数中删除空字符串)。
我可以使用以下代码获得结果:
if (attribute='') in ([first_query].[attribute]))
then (count(distinct(attribute)-1)
else (count(distinct(attribute))
如何避免在涉及attribute
?
答案 0 :(得分:1)
我使用这个Cognos函数:
nullif(1, 1)
答案 1 :(得分:0)
我发现可以使用case when
函数管理:
case
when ([attribute] > 3)
then ('value')
end
不同之处在于case when
并不需要拥有处理数据的所有可能选项,如果它发现了一个不在列表中的情况,它只返回一个空白单元格。
完美的我需要的东西(而不是像在相反的情况下在网上记录的那样,即处理应该为零的空案例)。