Visual Basic - Funcion Sql para cortar cadena

Life is soft - evento anual de software empresarial
 
Vista:

Funcion Sql para cortar cadena

Publicado por Maria Jose (9 intervenciones) el 14/05/2008 17:45:44
Hola.. Alguien puede ayudarme...

Existe en SQL una funcion que te permita cortar una cadena en varios pedazos??

Por ejemplo, tengo la cadena = 000111001100000111110011
Necesito una funcion que yo le pase la cadena y la corte de 8 en 8 pedazos (sin hacer ciclos).
Es decir, que me devuelva lo siguiente:
00011100
11000001
11110011
Puede ser separados por algun caracter o añadiendolos a una tabla donde cada corte de 8 sea la fila de una columna...

Gracias por la ayuda...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcion Sql para cortar cadena

Publicado por Leobardo (15 intervenciones) el 14/05/2008 17:50:45
Hola si existe:

substring('string',posini, posfinal)

ejem:

select substring('000111001100000111110011',1,8)
select substring('000111001100000111110011',9,8)
select substring('000111001100000111110011',17,8)

esto te los corta correlo en el query analizer y veras el resultado que quieres.

Esperoq ue esto te sirva sale
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion Sql para cortar cadena

Publicado por Maria Jose (9 intervenciones) el 14/05/2008 17:55:34
Hola Leobardo gracias por la ayuda..

Lo probe y funciona pero lo que quiero evitar es tener que incrementar la posicion inicial y la final, evitarme los ciclos, ya que la tabla de donde saco la informacion puede llegar a tener hasta 25.000.000 millones de registros y el proceso tarda mucho.

Lo que quiero es una funcion que solamente le pases la cadena completa y le digas en cuantos pedazos la vas a cortar y el te calcule la cadena en esos pedazos sin necesidad de decirle la posicion inicial ni la final por lo que te explico arriba.

Muchas gracias por la ayuda que puedas brindame

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion Sql para cortar cadena

Publicado por Leobardo (15 intervenciones) el 14/05/2008 20:21:03
Hola de nuevo, bueno ahora si que no se desconozco si existe una funcion que pueda ahcer eso ya definida en SQL.

Pero sino lo que puedes hacer es una funcion que te separe la cadena como tu la necesitas.

mira hice esta rapido haber si te sirve te va a separar la cadena que le mandes en el numero de caracteres que tu le indiques.

Corre el query en tu base de datos para que te la genere y has una prueba haber si te sirve espero que si.


--Funcion para separar una cadena deacuerdo al numero de caracteres que le enviemos
--LVS 14/05/2008 Cd. Juarez
create FUNCTION F_CutString
(
@String varchar(200),
@intTop int
)
RETURNS VARCHAR(200)
AS
begin
declare @strTemp varchar(100),
@Result varchar(200),
@intLen decimal,
@i int
set @intLen = Len(@String)
set @i=1
set @Result = ''

While @i <= @intLen
Begin
set @strTemp = substring(@String, @i, @intTop)
set @Result = @Result +' '+ @strTemp
set @i = @i + @intTop

end
RETURN (@Result)
end

Y para mandarla llamar y hacer la pruebas:

select dbo.F_CutString('000111001100000111110011', 8)
select dbo.F_CutString('000111001100000111110011', 3)
select dbo.F_CutString('000111001100000111110011', 12)

ojala que esta funcion te ayude con lo que necesitas. igual tu puedes modificar la funcion a tus necesidades y cambiar el espacion en blanco por un guion o no se sale.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion Sql para cortar cadena

Publicado por paco (42 intervenciones) el 14/05/2008 22:23:06
pero que desis desgrasiao, en que lenguaje ablais??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion Sql para cortar cadena

Publicado por F.J.Rabasco (1 intervención) el 22/01/2009 12:16:53
Hola.
No se si te servira esta funcion creada por mi.
Lo que hace esta funcion es devolver de una string enviada, el pedazo que encuentra antes de localizar el separador.

Creas la funcion y luego la llamas poniendo:
Select dbo.cortarStrPorCaracteres ('Hola Fran', 'F')
Resultado: Hola

CREATE FUNCTION cortarStrPorCaracteres (@SCADENA VARCHAR(8000), @SSEPARACION VARCHAR(8000))
RETURNS VARCHAR(8000) AS
BEGIN
DECLARE @I AS INT
SET @I=1
WHILE (@I<=LEN(@SCADENA)) AND (SUBSTRING(@SCADENA, @I, LEN(@SSEPARACION))<>@SSEPARACION)
BEGIN
SET @I = @I + 1
END


RETURN SUBSTRING(@SCADENA, 1, @I-1)
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar