Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Procédure stockée SQL empêchant d'écrire null

Je suis encore un peu confus par votre question, mais cela devrait fonctionner si je comprends bien. Au lieu de tous les IF déclarations, envisagez de passer à un seul CASE déclaration, en définissant la valeur par défaut sur 0. Ajoutez ensuite une vérification si la valeur n'est pas 0, pour faire quelque chose.

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