Ниже приведены три отдельные реализации для каждого из SQL Server, MySQL и Oracle.Ни один из них не использует (или не может) использовать один и тот же подход, поэтому, похоже, нет кросс-СУБД.Для MySQL и Oracle показывается только простой целочисленный тест;для SQL Server показан полный числовой тест.
Для SQL Server: обратите внимание, что isnumeric ('.') возвращает 1 .. но на самом деле его нельзя преобразовать в число с плавающей точкой.Некоторый текст, такой как '1e6', не может быть напрямую преобразован в числовой, но вы можете пройти через число с плавающей запятой, а затем числовой.* case when REGEXP_LIKE(col, '[^0-9]') then col*1 end