sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Stored Procedure forhindrer at skrive null

Jeg er stadig lidt forvirret over dit spørgsmål, men det burde virke som jeg forstår. I stedet for alle IF udsagn, overveje at flytte ind i en enkelt CASE sætning, som standardværdien til 0. Tilføj derefter en markering, hvis værdien ikke er 0, for at gøre noget.

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. ORA-02267:kolonnetype inkompatibel med refereret kolonnetype

  2. PostgreSQL RDS undgå hårdkodning af forbindelsesadgangskoden, når du bruger dblink_connect()

  3. Sortering af strengtegn i MySQL

  4. MySQL:sammensat indeks fuldtekst+btræ?