Hola, siempre y cuando no exista números en la parte del texto puede hacerse una función que testee cada caracter y determine donde empiezan los numeros
Aca te dejo una funcion que obtiene el telefono desde un varchar de 6 caracteres
Código PHP:
ALTER FUNCTION fn_BuscaFono (@str varchar(6))
RETURNS VARCHAR (6)
AS
BEGIN
--DECLARE @STR AS VARCHAR(6)
--DECLARE @INDEX AS TINYINT
--SET @STR='HA8239'
IF ISNUMERIC(SUBSTRING(@STR, 1,1))=1
SET @INDEX = 1
ELSE
IF ISNUMERIC(SUBSTRING(@STR, 2,1))=1
SET @INDEX = 2
ELSE
IF ISNUMERIC(SUBSTRING(@STR, 3,1))=1
SET @INDEX = 3
ELSE
IF ISNUMERIC(SUBSTRING(@STR, 4,1))=1
SET @INDEX = 4
ELSE
IF ISNUMERIC(SUBSTRING(@STR, 5,1))=1
SET @INDEX = 5
ELSE
IF ISNUMERIC(SUBSTRING(@STR, 6,1))=1
SET @INDEX = 6
ELSE
RETURN NULL
RETURN SUBSTRING(@STR, @INDEX, 100)
END
Y bueno, ahí tendrás que agregar más ifs para poder testear cadenas más largas, o tal vez podrías poner un for en lugar de repetir tantas veces el if.
También tendrás que hacer otra función similar para obtener la parte del texto.
Saludos!