The use of IsNumeric in onne of the solutions serves as a reminder that there are a whole lot of things that look like numbers to SQLServer. Here's some updated test data to see what I mean...
with tmp as
(
SELECT x = 'some text-1'
UNION ALL SELECT x = 'some text-123'
UNION ALL SELECT x = 'some text-123.4'
UNION ALL SELECT x = 'some text 123'
UNION ALL SELECT x = 'some text-'
UNION ALL SELECT x = 'some text- ' --Added this for possible CHAR values
UNION ALL SELECT x = 'some text- 123 ' --Added "stray bullet"
UNION ALL SELECT x = 'some text-123 456' --Added "stray bullet"
UNION ALL SELECT x = 'some text-123d4' --Added "stray bullet"
UNION ALL SELECT x = 'some text-123e4' --Added "stray bullet"
UNION ALL SELECT x = 'some text-$1,234' --Added "stray bullet"
UNION ALL SELECT x = 'some text-1,234' --Added "stray bullet"
UNION ALL SELECT x = 'some text-0x1234,' --Added "stray bullet"
UNION ALL SELECT x = 'some text'
UNION ALL SELECT x = 'some text-xyz'
)
... put your code here ...
--Jeff Moden
Change is inevitable... Change for the better is not.