美好的一天..我很难将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 或您已经知道的任何建议/替代方案?
提前谢谢!
答案 0 :(得分:2)
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
答案 1 :(得分:2)
试试这个
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