2015-10-21 49 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等)相匹配,但是概念是一樣的。