You can do that like shown below, but the thing is that when you do that when you do that you are forced to convert the numeric data type to a string - because all the data in any column returned in a select list have to have the same data type. For a variety of reasons, ending up with a string where it should be numbers is not a good thing - you will lose the ability to do numeric sort, for one thing. So the best strategy would be to do the replacement of zero's with the strings just before presenting the data - for example, in the reporting services if that is where you are going to use the data.
In any case:
CASE WHEN [Type] = 0 THEN 'Replaced' ELSE CAST(num AS VARCHAR(32)) END AS NumString