0

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

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

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

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

4

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

如果您在查询部分执行此操作,则必须用 SQL 编写它,并且必须使语法与您的数据源(Oracle、DB2、Sybase 等)相匹配,但概念是相同的。

于 2016-07-25T22:50:53.910 回答