Quitar caracter no numerico

24/08/2007 - 21:18 por Julian Valero | Informe spam
Buena tarde grupo.

Cual es la forma mas optima de quitar de una cadena todos los caracteres no
numéricos, en los BOL encontré un ejemplo que se puede adaptar pero implica
utilizar un While para recorrer cada cadena. En millones de datos puede
presentar tiempos de respuesta muy altos.

Identificacion Resultado deseado
No.1234. 1234
No existe, 456 456
789: anulado 789
(acd)3355 3355
457Nit 457
456-1 4561
456-1A 4561
487 = Repetido 487

Agradezco de antemano la ayuda que me puedan brindar

Lo que encontre en los BOL

ASCII
Ejemplos
SET TEXTSIZE 0
SET NOCOUNT ON
DECLARE @position int, @string char(15)
SET @position = 1
SET @string = 'Du monde entier'
WHILE @position <= DATALENGTH(@string)
BEGIN
SELECT ASCII(SUBSTRING(@string, @position, 1)),
CHAR(ASCII(SUBSTRING(@string, @position, 1)))
SET @position = @position + 1
END
SET NOCOUNT OFF
GO

Preguntas similare

Leer las respuestas

#1 Isaias
25/08/2007 - 00:28 | Informe spam
Julian

No creo que exista otra forma "Mas rapida" de hacerlo.

Saludos
IIslas


"Julian Valero" wrote:

Buena tarde grupo.

Cual es la forma mas optima de quitar de una cadena todos los caracteres no
numéricos, en los BOL encontré un ejemplo que se puede adaptar pero implica
utilizar un While para recorrer cada cadena. En millones de datos puede
presentar tiempos de respuesta muy altos.

Identificacion Resultado deseado
No.1234. 1234
No existe, 456 456
789: anulado 789
(acd)3355 3355
457Nit 457
456-1 4561
456-1A 4561
487 = Repetido 487

Agradezco de antemano la ayuda que me puedan brindar

Lo que encontre en los BOL

ASCII
Ejemplos
SET TEXTSIZE 0
SET NOCOUNT ON
DECLARE @position int, @string char(15)
SET @position = 1
SET @string = 'Du monde entier'
WHILE @position <= DATALENGTH(@string)
BEGIN
SELECT ASCII(SUBSTRING(@string, @position, 1)),
CHAR(ASCII(SUBSTRING(@string, @position, 1)))
SET @position = @position + 1
END
SET NOCOUNT OFF
GO



Respuesta Responder a este mensaje
#2 principiante
25/08/2007 - 15:41 | Informe spam
Cual es la forma mas optima de quitar de una cadena todos los caracteres
no
numéricos, en los BOL encontré un ejemplo que se puede adaptar pero
implica
utilizar un While para recorrer cada cadena. En millones de datos puede
presentar tiempos de respuesta muy altos.




Ciertamente es asi pero es el costo de no haber tenido ese numero que
quieres extraer en una columna separada de tu tabla. Dicho de otro modo, es
un error de diseño.

Jose TH




Identificacion Resultado deseado
No.1234. 1234
No existe, 456 456
789: anulado 789
(acd)3355 3355
457Nit 457
456-1 4561
456-1A 4561
487 = Repetido 487

Agradezco de antemano la ayuda que me puedan brindar

Lo que encontre en los BOL

ASCII
Ejemplos
SET TEXTSIZE 0
SET NOCOUNT ON
DECLARE @position int, @string char(15)
SET @position = 1
SET @string = 'Du monde entier'
WHILE @position <= DATALENGTH(@string)
BEGIN
SELECT ASCII(SUBSTRING(@string, @position, 1)),
CHAR(ASCII(SUBSTRING(@string, @position, 1)))
SET @position = @position + 1
END
SET NOCOUNT OFF
GO



Respuesta Responder a este mensaje
#3 principiante
25/08/2007 - 15:54 | Informe spam
Pero si lo has de hacer una sola vez para separarlo a otra columna y dejarlo
separado, no importaria que tarde mucho pues seria solo una vez.

Jose TH



"principiante" wrote in message
news:%
Cual es la forma mas optima de quitar de una cadena todos los caracteres
no
numéricos, en los BOL encontré un ejemplo que se puede adaptar pero
implica
utilizar un While para recorrer cada cadena. En millones de datos puede
presentar tiempos de respuesta muy altos.




Ciertamente es asi pero es el costo de no haber tenido ese numero que
quieres extraer en una columna separada de tu tabla. Dicho de otro modo,
es un error de diseño.

Jose TH




Identificacion Resultado deseado
No.1234. 1234
No existe, 456 456
789: anulado 789
(acd)3355 3355
457Nit 457
456-1 4561
456-1A 4561
487 = Repetido 487

Agradezco de antemano la ayuda que me puedan brindar

Lo que encontre en los BOL

ASCII
Ejemplos
SET TEXTSIZE 0
SET NOCOUNT ON
DECLARE @position int, @string char(15)
SET @position = 1
SET @string = 'Du monde entier'
WHILE @position <= DATALENGTH(@string)
BEGIN
SELECT ASCII(SUBSTRING(@string, @position, 1)),
CHAR(ASCII(SUBSTRING(@string, @position, 1)))
SET @position = @position + 1
END
SET NOCOUNT OFF
GO







email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida