Dhruvesh Shah (10/14/2013)
Good question. Any one know why it returns 1 for some/most of special characters?
ISNUMERIC returns 1 if the input can be converted to a numeric data type. It doesn't bother to tell you which data type.
In the case of '-', most data types will do (It is interpreted as -0). Similar for '.', which is interpreted as 0.0.
The '$' symbol converts to only a specific numeric data type: money (and smallmoney). It is interpreted as $0.00.
SELECT CAST('$' AS money);