Si existe solamente un par de caracteres:
Código SQL:
Ver originalDECLARE @variable VARCHAR(MAX)='00012AB';
SELECT SUBSTRING(@variable,PatIndex('%[^0123456789]%',@variable),2);
Si existe una secuencia de caracteres:
Código SQL:
Ver originalDECLARE @variable VARCHAR(MAX)='12abcd56';
SELECT Stuff('0'+LEFT(@variable,Len(@variable)-PatIndex('%[^0123456789]%',Reverse('0'+@variable+'0'))+2),1,PatIndex('%[^0123456789]%','0'+@variable+'0')-1,'');
Si existen varias secuencias de caracteres - Puedes utilizar la solucion de Libras (un bucle) o un CTE dinamico:
Código SQL:
Ver originalDECLARE @variable VARCHAR(MAX)='12abcd56ef7g8';
WITH CTE AS
(SELECT 0 N,
REPLACE(@variable,1,'') variable
UNION ALL
SELECT N+1 N,
REPLACE(variable,N+1,'') variable
FROM CTE
WHERE N<9)
SELECT Variable
FROM CTE
WHERE N=9;