est possible à l'aide de la commande de pause dans la déclaration de cas dans MSSQL?
Parce que la condition est vérifiée que l'expression go code>, au lieu de faire la transition du prochain des cas.
SSIP_MIKTAR a 5 ans, SSIP_TESLIM_MIKTAR est 0 et S74MIKTAR est 5 p> update set ssip_teslim_miktar= ssip_teslim_miktar+
CASE WHEN ssip_miktar<@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR-ssip_miktar
WHEN ssip_miktar<@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR-(ssip_miktar+ssip_teslim_miktar)
WHEN ssip_miktar=@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR
WHEN ssip_miktar=@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR-ssip_teslim_miktar
WHEN ssip_miktar>@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR
WHEN ssip_miktar>@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR
END,
@S74MIKTAR=@S74MIKTAR-CASE
WHEN ssip_miktar<@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR-ssip_miktar
WHEN ssip_miktar<@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR-(ssip_miktar+ssip_teslim_miktar)
WHEN ssip_miktar=@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR
WHEN ssip_miktar=@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR-ssip_teslim_miktar
WHEN ssip_miktar>@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR
WHEN ssip_miktar>@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR
ELSE 0
END
where ssip_teslim_miktar<ssip_miktar
3 Réponses :
Ce n'est pas nécessaire. alors code> agit efficacement comme un retour ou une pause, la déclaration est donc courte. p>
set ssip_teslim_miktar = ssip_teslim_miktar + CASE QUAND ssip_miktar <@ S74MIKTAR ET ssip_teslim_miktar = 0 ALORS @ S74MIKTAR-ssip_miktar QUAND ssip_miktar <@ S74MIKTAR ET ssip_teslim_miktar> 0 ALORS @ S74MIKTAR- (ssip_miktar + ssip_teslim_miktar) QUAND ssip_miktar = @ S74MIKTAR ET ssip_teslim_miktar = 0 ALORS @ S74MIKTAR QUAND ssip_miktar = @ S74MIKTAR ET ssip_teslim_miktar> 0 ALORS @ S74MIKTAR-ssip_teslim_miktar QUAND ssip_miktar> @ S74MIKTAR ET ssip_teslim_miktar = 0 ALORS @ S74MIKTAR QUAND ssip_miktar> @ S74MIKTAR ET ssip_teslim_miktar> 0 ALORS @ S74MIKTAR où ssip_teslim_miktar
Aussi SSIP_MIKTAR = 5, SSIP_TESLIM_MIKTAR = 0 et S74MIKTAR = 5
@bedddin je ne vois aucun
fin code> instruction.
Ceci est transactionnel SQL et n'est pas itératif. Il ne nécessite pas une pause, car une seule des clauses quand / else sera évaré.
Essayez ce qui suit: p> @Test code> @Test code> est seulement jamais 2 code> p> p>
@Phil. Merci. Édité en conséquence.
Vous ne devriez pas avoir besoin d'utiliser une pause code> car les déclarations de cas SQL ne tombent pas.
DECLARE @x int
SET @x = 0
SELECT CASE
WHEN @x = 0 THEN 'zero' -- Only this line of the expression is evaluated
WHEN @x <> 0 THEN 'not-zero'
END
S'il vous plaît regarder suivez .. j'ai écrit mon code comme commentaire.