Одним из способов является ISNUMERIC функция:
select * from YourTable where ISNUMERIC(col1) = 1
Есть одна ошибка: isnumeric
возвращает 1 всякий раз, когда строка может быть преобразована в любой числовой тип, включая money
. Например, скажем, у вас есть строки, использующие различные десятичные разделители, такие как 7.9
и 7,9
. Оба преобразуются в money
, а isnumeric
возвращает 1 для них обоих. Но только один преобразуется в decimal
, в зависимости от языковых настроек SQL Server.