Hej håller på och labbar lite men får det inte som jag vill. Hej, Annars är CASE ett trevligt alternativ för att sköta detta.Får inte till If i MSSQL
Vill att den ska vid exemplet skriva Text= Återinträde och inte Byte av licenstype.
DECLARE @parmHistoryType int
DECLARE @parmHistoryText nvarchar(50)
SET @parmHistoryType = 30
IF @parmHistoryType =20
BEGIN
SET @parmHistoryText = 'Byte av klubb'
END
IF @parmHistoryType = 25
BEGIN
SET @parmHistoryText = 'Byte av Hcp'
END
IF @parmHistoryType = 30
BEGIN
SET @parmHistoryText = 'Återinträde'
END
IF @parmHistoryType = 40
BEGIN
SET @parmHistoryText = 'Avlicensierad'
END
ELSE
BEGIN -- Om det är licenstyp byte
SET @parmHistoryText = 'Byte av license Typ'
END
PRINT @parmHistoryType
PRINT @parmHistoryText
Sv: Får inte till If i MSSQL
Det ligger en else som alltid körs om din parameter inte är 40. Och då du skickar in något <> 40 så kommer den alltid att skriva ut 'Byte av license Typ'.
Nu vet inte jag hur man skriver koden men ska inte alla IF börja med ELSE utom den första?
<code>
IF @parmHistoryType = 40
BEGIN
SET @parmHistoryText = 'Avlicensierad'
END
ELSE
BEGIN -- Om det är licenstyp byte
SET @parmHistoryText = 'Byte av license Typ'
END
</code>Sv: Får inte till If i MSSQL
<code>
DECLARE @parmHistoryType int;
DECLARE @parmHistoryText nvarchar(50);
SET @parmHistoryType = 20;
SET @parmHistoryText = CASE @parmHistoryType
WHEN 20 THEN 'Byte av klubb'
WHEN 25 THEN 'Byte av Hcp'
WHEN 30 THEN 'Återinträde'
WHEN 40 THEN 'Avlicensierad'
ELSE 'Byte av license Typ'
END;
PRINT @parmHistoryType;
PRINT @parmHistoryText;
</code>