比较Hyperion(Oracle)中的2列

时间:2015-10-21 20:47:50

标签: hyperion

我在查询中有两列 我有2个字段(字段1和字段2)。我想做的是:

  

如果字段1为空,则使用字段2,但

     

如果它不是空白,那么我希望它用字段1填充它。

我确信它可以在计算列中完成,但是逻辑失败(到目前为止)。

1 个答案:

答案 0 :(得分:0)

"空白"可能意味着很多事情。您可以尝试检查最常见的那些。

在结果集中,这将检查一些事情。

    if( Field_1 == null || Field_1.replace(/\s/gi,'') == '' || Field_1 == NaN )
    {
      Field_2;
    }
    else
    {
      Field_1;
    }
  1. 首先是您的字段是否为空,并且不包含任何数据。 Hyperion结果设置计算项目,如" null"全是小写。
  2. 其次是您是否拥有数据,但它是不可见的。通常情况下, 这是空字符串,但它也可以是其他空格,所以我们会这样做 看看是否更换了所有空格(不改变数据;它只是 为了比较,用空字符串会产生一个空字符串。 / \ s / gi是正则表达式...它意味着"空白"全球(即:每场比赛), 不区分大小写的。
  3. 最后(并且,我个人从来没有这样做过,但我已经告诉过它可能会发生),检查一下是不是一个非数字(NaN)响应。这是一种可以出现在数据中的错误,计为值,但可能不会显示在屏幕上。
  4. 如果您在“查询”部分中执行此操作,则必须在SQL中编写它,并且必须将语法与数据源(Oracle,DB2,Sybase等)匹配,但是概念是一样的。