SQL 服务器计算列中的条件

Condition in SQL Server computed column

我在 SQL 服务器中创建了一个 table 来存储击球手 运行 和球面数,除此之外我还有一个计算列来获取球员的命中率

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

它工作正常,除非第一个球无效并且玩家得分 运行。

例如:

然后这个计算列创建一个异常,导致程序出错。

有没有办法在计算列中添加条件来避免这种情况?

只需使用这样的 IIF 条件:

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

这将 return 如果 TotalBallPlayed 大于零,或者只是 0,如果 TotalBallPlayed = 0