簡體   English   中英

IIF到CASE WHEN聲明

[英]IIF to CASE WHEN statement

美好的一天..我很難從ms訪問sql轉換為sql server 2005 sql查詢..這里是我的代碼:

UPDATE Data SET 
  Data.Mean =([std1]+[std2]+[std3]/
IIf((3+(([std1]=0)+([std2]=0)+([std3]=0)))>0,
  (3+(([std1]=0)+([std2]=0)+([std3]=0))),1) 
WHERE Data.ID=125

我認為轉換它的最佳方法是使用CASE WHEN STATEMENT或您已經知道的任何建議/替代方案?

先感謝您!

UPDATE Data SET
Data.Mean =([std1]+[std2]+[std3]/
(CASE WHEN (3+(([std1]=0)+([std2]=0)+([std3]=0)))>0 
THEN (3+(([std1]=0)+([std2]=0)+([std3]=0)))
ELSE 1
END))
WHERE Data.ID=125

嘗試這個

    UPDATE Data SET 
     Mean =([std1]+[std2]+[std3])/
    case when abs([std1])+abs([std2])+abs([std3])=0 then 1 else 
      3 + case [std1] when 0 then -1 else 0 end 
        + case [std2] when 0 then -1 else 0 end 
        + case [std3] when 0 then -1 else 0 end
    end
    WHERE ID=125

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM