Tecnología

Inicio

Cómo llevar Alpha Caracteres Pero Deja caracteres numéricos en SQL

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.