вы можете написать что-то вроде
create FUNCTION [dbo].[getFirstNumeric](
@s VARCHAR(50)
)
RETURNS int AS
BEGIN
set @s = substring(@s,patindex('%[0-9]%',@s),len(@s)-patindex('%[0-9]%',@s) + 1)
if patindex('%[^0-9]%',@s) = 0
return @s
set @s = substring(@s,1,patindex('%[^0-9]%',@s)-1)
return cast(@s as int)
end
, а затем позвоните
select max(dbo.getFirstNumeric(yourColumn)) from yourTable
если вы используете SQL Server 2005 или никогда, вы также можете использовать решение, опубликованное Sung Meister