2015-10-21 25 views
0

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

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

,如果它不为空,然后我希望它与现场1

填充它我确定它可以在计算列中完成,但是逻辑上不成功(到目前为止)。

回答

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)响应。这是一种可能出现在数据中的错误,算作价值,但可能不会显示在屏幕上。

如果你在Query部分这样做,你必须用SQL编写它,并且必须将语法与数据源(Oracle,DB2,Sybase等)相匹配,但是概念是一样的。