sql >> Databasteknik >  >> RDS >> Sqlserver

SQL lagrad procedur som förhindrar att skriva null

Jag är fortfarande lite förvirrad över din fråga, men det här borde fungera som jag förstår. Istället för alla IF uttalanden, överväg att flytta till ett enda CASE uttalande, med standardvärdet 0. Lägg sedan till en markering om värdet inte är 0, för att göra något.

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. I MySQL:Hur skickar man ett tabellnamn som lagrad procedur och/eller funktionsargument?

  2. Stöder rails mysql json datatyp

  3. hur man tvingar installation av management studio?

  4. Java 11-migrering - createConnectionBuilder() från PoolDataSourceImpl krockar med createConnectionBuilder() från javax.sql.DataSource