Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL съхранена процедура предотвратява записването на нула

Все още съм малко объркан от въпроса ви, но това трябва да работи, доколкото разбирам. Вместо всички IF изрази, помислете за преместване в един CASE оператор, като стойността по подразбиране е 0. След това добавете проверка, ако стойността не е 0, за да направите нещо.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Прекомпилиране на съхранени процедури?

  2. Как да активирате всички ограничения за проверка и външни ключове в база данни в SQL Server (примери за T-SQL)

  3. Най-лесният начин да разграничите две схеми на таблици в SQL Server 2008?

  4. SQL заявка за получаване на блокиранията в SQL SERVER 2008

  5. Как да картографирате входните и изходните колони динамично в SSIS?