The ISNUMERIC function (MSDN documentation) is used to validate if a string is a valid number. In the demonstration that follows, you would expect the results from 1 to 5 but look closely at the results 6, 7 and 8. There are multiple commas in the string and the last one is not even a number!
Well, a note at the MSDN documentation explains the True result for the ‘$’ sign at Id 8 –
ISNUMERIC returns 1 for some characters that are not numbers, such as plus (+), minus (-), and valid currency symbols such as the dollar sign ($). For a complete list of currency symbols, see Using Monetary Data.
For the strings at Id 6 and 7 with commas, the function behaves that if the string is convertible to a number then the result will be True. Something to remember while writing those data validation routines.
DECLARE @t TABLE ( id int, col1 VARCHAR(10) ) INSERT INTO @t (id, col1) VALUES (1, '-1001'), (2, '0'), (3, '1001.50'), (4, '1,500'), (5, 'abc'), (6, '15,0,1'), (7, '15,0,1.75'), (8, '$') SELECT id, col1, Isnumeric(col1) AS [IsNumeric] FROM @t