-
Cómo llevar Alpha Caracteres Pero Deja caracteres numéricos en SQL
-
de Microsoft SQL Transact-SQL tiene la capacidad de sacar los caracteres alfa numéricos, pero dejan caracteres en una cadena; que sólo requiere la creación de una función definida por el usuario. Es posible que desee hacer esto en los casos en que hay un campo numérico en la base de datos y se desea proteger la integridad de su instrucción de inserción mediante la limpieza de los datos antes de intentar la inserción. En la mayoría de los casos, toda la instrucción de inserción fallará si no es un carácter alfabético en un campo numérico.Instrucciones
1 En Microsoft SQL, crear una función definida por el usuario como:
CREATE FUNCTION dbo.UDF_NumericOnlyChars
(
VARCHAR @string (8000)
)
RETURNS VARCHAR (8000)
COMO
EMPEZAR
DECLARE @IncorrectCharLoc SMALLINT
SET @IncorrectCharLoc = PATINDEX (, @string '% [^ 0-9]%')
MIENTRAS @IncorrectCharLoc> 0
EMPEZAR
SET @Numericstring = STUFF(@Numericstring, @IncorrectCharLoc, 1, '')
SET @IncorrectCharLoc = PATINDEX ( '% [^ 0-9]%', @Numericstring)
FIN
Si (@Numericstring = '')
SET @Numericstring = '0' -- This will insure that a string of numbers is returned
RETORNO @Numericstring
FIN
IR
Esto se basa en la función definida por el usuario creado por Pinal de Dave.
2 Utilice la función de la siguiente manera:
Seleccione [dbo] .UDF_NumericOnlyChars ( '# sadDs132 DDS @ 19')
Que devolverá:
13219
3 Utilice la función de una columna de tabla para volver solamente los dígitos numéricos en la cadena:
Seleccionar Nombre, Apellidos, Teléfono, UDF_NumericOnlyChars (teléfono) como 'NumberOnly' de tblPeople
Que devolverá:
Nombre Apellido Teléfono NumberOnly
----------------- ---------------- ------------- ---- -----------------
John Doe (888)555-1212 8885551212
Consejos y advertencias
- Con algunas modificaciones simples, esta función se puede cambiar a sólo caracteres de retorno alfa o caracteres alfabéticos y numéricos.