sql >> Base de Datos >  >> RDS >> Sqlserver

Procedimiento almacenado de SQL que impide escribir nulo

Todavía estoy un poco confundido por su pregunta, pero esto debería funcionar según tengo entendido. En lugar de todos los IF declaraciones, considere pasar a un solo CASE declaración, por defecto el valor es 0. Luego agregue una verificación si el valor no es 0, para hacer algo.

DECLARE @Level int
DECLARE @Total int
DECLARE @NewPoint int

SET @Level = 61
SET @Total = 100

SELECT 
  @NewPoint = CASE
                WHEN @Level = 61 AND @Total < 482 THEN 10
                WHEN @Level = 62 AND @Total < 487 THEN 15
                WHEN @Level = 63 AND @Total < 492 THEN 20
                WHEN @Level = 64 AND @Total < 497 THEN 25
                WHEN @Level = 65 AND @Total < 502 THEN 30
                ELSE 0
              END

IF @NewPoint <> 0 
BEGIN
  SELECT 'DO SOMETHING'
END