DECLARE @x CHAR(1)
SET @x = CASE
WHEN @x = 'x' THEN 1
END
PRINT '@X is now ' + CAST(ISNULL(@x, 'A NULL') AS VARCHAR(50)) + '<'
The correct answer should be @X is now B<
This is because the value of @x after the SET statement is NULL. The ISNULL function attempts to assign the value 'A NULL' to @x but @x is CHAR(1) thus it is truncated to 'A'