2010-11-04 33 views
6

Tengo dos columnas, ambas int, Wins y Losses. He WinPercentage una columna calculada como decimal(14,3), yo quiero que esto sea:SQL Server Columna calculada

WinPercentage = (Wins + Losses)/Wins 

¿Cuál es la sintaxis para que?

+2

Creo que WinPercentage debería ser de 100.0 * Wins/(Wins + Losses). Asegúrate de usar 100.0 para evitar matemáticas enteras. –

Respuesta

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

Si solo estuviera poniendo esto en la caja de herramientas de las propiedades de la columna, ¿pondría todo después del 'AS' – Scott

+1

@Scott ... Sí, lo creo ... Me he alejado de usar las herramientas de diseño como yo puede ver más de lo que está sucediendo cuando lo escribo. Pero sí, creo que tienes razón. –

+2

Desea verificar el valor de ganancias, o arriesgar una división por error cero al seleccionar registros: una inserción funciona bien. –

Cuestiones relacionadas