Here's the clear version of the code:
IF (@phrase_type IS NULL OR @phrase_type = ' ')
Instead, the original code uses:
IF (ISNULL(@phrase_type, ' ') = ' ')
The ISNULL(<value1>, <value2>) will replace a NULL value1 with value2, in this case ' '. If value1 is not null, it will return value1. With some review of the code, you can see that functionally it's the same as the code above, albeit less clear.
SQL DBA,SQL Server MVP(07, 08, 09) "It's a dog-eat-dog world, and I'm wearing Milk-Bone underwear." "Norm", on "Cheers". Also from "Cheers", from "Carla": "You need to know 3 things about Tortelli men: Tortelli men draw women like flies; Tortelli men treat women like flies; Tortelli men's brains are in their flies".