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>