Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Buscar Caracter en una Cadena

Estas en el tema de Buscar Caracter en una Cadena en el foro de SQL Server en Foros del Web. Hola, Alguien de ustedes conoce alguna instrucción o funcion en SQL que me permita encontrar un caracter en una cadena???. Saludos!...
  #1 (permalink)  
Antiguo 21/12/2009, 16:17
 
Fecha de Ingreso: agosto-2009
Mensajes: 24
Antigüedad: 14 años, 8 meses
Puntos: 0
Buscar Caracter en una Cadena

Hola,

Alguien de ustedes conoce alguna instrucción o funcion en SQL que me permita encontrar un caracter en una cadena???. Saludos!
  #2 (permalink)  
Antiguo 22/12/2009, 06:37
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
De acuerdo Respuesta: Buscar Caracter en una Cadena

tu pregunta es si existe alguna funcion en sql que determine si un caracter esta dentro de una cadena???

de ser asi solo se me ocurre el LIKE de sql:

SELECT * FROM mitabla WHERE campoX LIKE '%C%';
--muestra solo aquellos registros cuyo campoX contiene el caracter "C"

saludos,
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."

Última edición por gabrielflowers; 22/12/2009 a las 06:47
  #3 (permalink)  
Antiguo 22/12/2009, 09:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 24
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Buscar Caracter en una Cadena

Bueno, no es lo que busco exacatemente, esto es lo que tengo:

Declare @Resultado as int
Declare @document as varchar(64)
Declare @n as int

set @n = 0
set @document = 'H/ola /Mun/do'

While @n<>0
Begin
set @Resultado = CHARINDEX('/',@document)
print @Resultado
set @n = @n+1
End


Si el valor devuelto es 0 entonces quiere decir que el caracter no existe dentro de la cadena, yo quiero que el resultado sea la cada posición donde se encuentra el caracter "/", en este caso 2,7,11. Alguien tiene alguna función para hacer esto????
  #4 (permalink)  
Antiguo 22/12/2009, 10:12
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
Respuesta: Buscar Caracter en una Cadena

realmente que es lo que quieres, saber si un caracter esta dentro de una cadena?? o saber la primera aparicion de un caracter dentro de una cadena????

explica mejor tu pregunta porfa...
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."
  #5 (permalink)  
Antiguo 22/12/2009, 10:21
 
Fecha de Ingreso: agosto-2009
Mensajes: 24
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Buscar Caracter en una Cadena

Lo que deseo saber es si un caracter esta dentro de una cadena y si lo esta, poder guardar las posiciones donde se encuentra dicho caracter.
  #6 (permalink)  
Antiguo 22/12/2009, 10:52
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Buscar Caracter en una Cadena

Espero te sea de utilidad....

Código:
DECLARE @RESULTADO AS INT
DECLARE @DOCUMENT AS VARCHAR(64)
DECLARE @N AS INT

SET @N = 0
SET @DOCUMENT = 'H/OLA /MUN/DO'

WHILE PATINDEX('%/%',@DOCUMENT)>0
BEGIN
    SET @RESULTADO = PATINDEX('%/%',@DOCUMENT) + @N
    SELECT @N = @RESULTADO  
    PRINT @RESULTADO
    
    SELECT @DOCUMENT = RIGHT(@DOCUMENT,LEN(@DOCUMENT)-PATINDEX('%/%',@DOCUMENT))
END
saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #7 (permalink)  
Antiguo 22/12/2009, 11:04
 
Fecha de Ingreso: agosto-2009
Mensajes: 24
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Buscar Caracter en una Cadena

Muchas gracias, es perfectamente lo que había estado buscando.Me salvaste de una. Gracias

Saludos Cordiales
  #8 (permalink)  
Antiguo 22/12/2009, 15:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 24
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Buscar Caracter en una Cadena

Habría alguna función que en lugar de devolver las posiciones de "/", me devolviera los valores que hay entre cada una de ellas, por ejemplo que me devuelva lo sig.

1.- H
2.- OLA
3.- MUN
4.- DO
  #9 (permalink)  
Antiguo 22/12/2009, 15:54
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Busqueda Respuesta: Buscar Caracter en una Cadena

Código:
DECLARE @RESULTADO AS INT
DECLARE @DOCUMENT AS VARCHAR(64)
DECLARE @N AS INT

SET @N = 0
SET @DOCUMENT = 'H/OLA /MUN/DO'

WHILE PATINDEX('%/%',@DOCUMENT)>0
BEGIN
    SET @RESULTADO = PATINDEX('%/%',@DOCUMENT) + @N
    SELECT @N = @RESULTADO  
    PRINT @RESULTADO

	SELECT ISNULL(LEFT(@DOCUMENT,PATINDEX('%/%',@DOCUMENT)-1),'')
    
    SELECT @DOCUMENT = RIGHT(@DOCUMENT,LEN(@DOCUMENT)-PATINDEX('%/%',@DOCUMENT))
END

SELECT ISNULL(@DOCUMENT,'')
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #10 (permalink)  
Antiguo 28/07/2011, 14:39
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Buscar Caracter en una Cadena

Cita:
Iniciado por Andres95 Ver Mensaje
Código:
DECLARE @RESULTADO AS INT
DECLARE @DOCUMENT AS VARCHAR(64)
DECLARE @N AS INT

SET @N = 0
SET @DOCUMENT = 'H/OLA /MUN/DO'

WHILE PATINDEX('%/%',@DOCUMENT)>0
BEGIN
    SET @RESULTADO = PATINDEX('%/%',@DOCUMENT) + @N
    SELECT @N = @RESULTADO  
    PRINT @RESULTADO

	SELECT ISNULL(LEFT(@DOCUMENT,PATINDEX('%/%',@DOCUMENT)-1),'')
    
    SELECT @DOCUMENT = RIGHT(@DOCUMENT,LEN(@DOCUMENT)-PATINDEX('%/%',@DOCUMENT))
END

SELECT ISNULL(@DOCUMENT,'')
Saludos!
Muchas gracias, es lo que buscaba, me registre solo para agradecerte.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:47.