SQL Server 计算列

问题描述 投票:0回答:2

我有两列,都是整数,

Wins
Losses
。我有一个计算列
WinPercentage
作为
decimal(14,3)
,我希望它是:

WinPercentage = (Wins + Losses) / Wins

其语法是什么?

sql sql-server database-design calculated-columns
2个回答
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
投票

要在现有表中创建计算列,然后使用“ALTER TABLE”。

胜率的公式是 获胜百分比 = (获胜 / (获胜 + 损失)) * 100

当输赢总数为0时,利用NULLIF函数来防止被零除的问题。

 更改表 [输赢百分比]
    ADD WinPercentage AS (CONVERT(decimal(5, 2), (Wins * 100.0 / NULLIF((Wins + Losses), 0)))) PERSISTED;

希望!这很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.