Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Stored Procedure impedindo escrever nulo


Ainda estou um pouco confuso com sua pergunta, mas isso deve funcionar como eu entendo. Em vez de todos os IF instruções, considere mudar para um único CASE declaração, padronizando o valor para 0. Em seguida, adicione uma verificação se o valor não for 0, para fazer 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