2010-11-04 156 views
6

我有两列,int和WinsLosses。我有一个计算列WinPercentage作为decimal(14,3),我想这是:SQL Server计算列

WinPercentage = (Wins + Losses)/Wins 

什么是语法是什么?

+2

我认为WinPercentage应该是100.0 * Wins /(Wins + Losses)。确保你使用100.0来避免整数运算。 – 2010-11-04 01:07:19

回答

7
CREATE TABLE WinLoss 
(
TeamId int IDENTITY(1,1) NOT NULL, 
Wins int, 
Losses int, 
WinPercentage AS CASE WHEN wins > 0 THEN (Wins + Losses)/Wins ELSE 0 END 
) 
+0

如果我只是把它放到列属性工具箱中,我是否会在'AS' – Scott 2010-11-04 00:55:52

+1

@Scott后面放置所有东西....是的,我相信如此......我偏离了使用设计工具,因为我当我输入时可以看到更多的内容。但是,我相信你是对的。 – 2010-11-04 00:57:33

+2

您想要检查胜利值,或者在选择记录时冒着被零错误除法的风险 - 插入工作正常。 – 2010-11-04 01:05:11