2016-12-10 29 views
1
SELECT description as FOOD, 
price, 
price_increase 
iif(price_increase/price < .10 or price_increase is null, 'Less than 10% Increase', 
iif(price_increase/price > .15 , 'Greater that 15% increase ', ' ')) 
from l_foods 
where (price_increase/price) < .10 or price_increase is null, or (price_increase/price) 
> .15 
order by description; 

ERROR MESSAGE有什麼不對我的IIF語句我不斷收到錯誤

我有麻煩試圖完成這一說法。我的iif聲明一直給我錯誤

+1

您在上一行末尾缺少一個逗號。 –

回答

0

問題是上一行缺少逗號和WHERE子句中的額外逗號。

我要指出,你也可以使用switch()

select description as FOOD, price, price_increase, 
     switch(price_increase < 0.10 * price or price_increase is null, 
       'Less than 10% Increase', 
       price_increase > 0.15 * price, 
       'Greater that 15% increase ' 
      ) 
from l_foods 
where price_increase < 0.10 * price or 
     price_increase is null or 
     price_increase > 0.15 * price 
order by description; 

注:

  • 我把0小數點之前,所以小數點更容易閱讀。
  • 我更喜歡乘法除法,因爲幾乎沒有發生錯誤的危險(我想可能會出現溢出錯誤,但這比被​​零除的可能性要小得多)。
  • switch()很好,因爲您不需要默認選項。 where子句將其過濾掉。
+0

謝謝先生,我非常感謝你總是給我的幫助@Gordon Linoff – Clay

相關問題