SQL Server计算列中的条件

时间:2018-12-24 06:33:53

标签: sql-server if-statement calculated-columns

我在SQL Server中创建了一个表,用于存储击球手的跑动和球面数,此外,我还具有一个计算列来获取球员的罢工率

(((100) * [TotalRun]) / [TotalBallPlayed])

除非第一个球无效并且球员得分得分无效,否则它会正常工作。

例如:

  • TotalRun = 2
  • TotalBallPlayed = 0(因为球不是球)

然后,此计算列创建一个异常,该异常导致程序错误。

有什么方法可以在计算列中添加条件以避免这种情况?

1 个答案:

答案 0 :(得分:3)

只需使用IIF这样的条件:

ALTER TABLE dbo.YourTableNameHere
ADD StrikeRate AS IIF(TotalBallPlayed > 0, (100.0 * [TotalRun]) / [TotalBallPlayed], 0);

如果TotalBallPlayed大于零,则返回您拥有的公式;如果0则返回TotalBallPlayed = 0