Pause in der case-Anweisung in T-SQL
Möglich ist, mit break-Befehl in der case-Anweisung in mssql?
Weil die Bedingung überprüft wird, dass der Ausdruck GO
, anstatt dies der nächste FALL, den übergang.
ssip_miktar 5, ssip_teslim_miktar ist 0 und S74MIKTAR 5
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
- Bitte schauen Sie auf Folgen.. ich schrieb meinem code als Kommentar.
- Welchen output bekommen Sie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie nicht brauchen, um eine
break
da SQL Case-Anweisungen fallen nicht durch.Diese Transaktions-SQL und ist nicht iterativ. Es erfordert nicht eine Pause, da nur eine der when/else-Klauseln werden evaulated.
Versuchen Sie Folgendes:
@test
ist immer nur2
Ist dies nicht notwendig.
THEN
effektiv wirkt wie eine Rückkehr oder brechen, so die Aussage kurzgeschlossen ist.END
- Anweisung.