manejo de string

27/06/2005 - 17:06 por Mauro | Informe spam
como pudo separar lo siguiente:

'string1:string2:string3:string4'
en :
@a='string1'
@b='string2'
@c='string3'
@d='string4'

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
27/06/2005 - 17:21 | Informe spam
Trata:

use northwind
go

declare @s varchar(128)
declare @a varchar(25)
declare @b varchar(25)
declare @c varchar(25)
declare @d varchar(25)

set @s = 'string1:string2:string3:string4'

select
@a = parsename(replace(@s, ':', '.'), 4),
@b = parsename(replace(@s, ':', '.'), 3),
@c = parsename(replace(@s, ':', '.'), 2),
@d = parsename(replace(@s, ':', '.'), 1)

select
@a as [@a],
@b as [@b],
@c as [@c],
@d as [@d]
go


AMB


"Mauro" wrote:

como pudo separar lo siguiente:

'string1:string2:string3:string4'
en :
@a='string1'
@b='string2'
@c='string3'
@d='string4'




Respuesta Responder a este mensaje
#2 Mauro
27/06/2005 - 17:39 | Informe spam
como hariamos esto dinamico a la cantidad de elementos en el string?

"Alejandro Mesa" wrote in message
news:
Trata:

use northwind
go

declare @s varchar(128)
declare @a varchar(25)
declare @b varchar(25)
declare @c varchar(25)
declare @d varchar(25)

set @s = 'string1:string2:string3:string4'

select
@a = parsename(replace(@s, ':', '.'), 4),
@b = parsename(replace(@s, ':', '.'), 3),
@c = parsename(replace(@s, ':', '.'), 2),
@d = parsename(replace(@s, ':', '.'), 1)

select
@a as [@a],
@b as [@b],
@c as [@c],
@d as [@d]
go


AMB


"Mauro" wrote:

> como pudo separar lo siguiente:
>
> 'string1:string2:string3:string4'
> en :
> @a='string1'
> @b='string2'
> @c='string3'
> @d='string4'
>
>
>
>
Respuesta Responder a este mensaje
#3 Isaias
27/06/2005 - 17:58 | Informe spam
Mauro

¿No seria mejor que nos dijeras que deseas hacer?

No veo imposible hacerlo dinamico, pero eso de hacer dinamico el numero de
variables, lo veo en "chino"
Respuesta Responder a este mensaje
#4 Don Roque
27/06/2005 - 17:58 | Informe spam
Se me ocurre que podes crear una UDF que lo haga y te devuelva el
resultado en una tabla.




CREATE function fcnSplit
(
@msg varchar(50),
@sep char(1)
)
RETURNS @table_return TABLE
(
words varchar(50)
)

AS
BEGIN

declare @fin int

set @msg = ltrim(rtrim(@msg))
while (replace(@msg, replicate(@sep, 2), @sep)<>@msg)
set @msg = replace(@msg, replicate(@sep, 2), @sep)

if charindex(@sep, @msg) = 0
begin
insert into @table_return values(@msg)
end

else
begin

while @msg <> ''
begin
set @fin = 1
while substring(@msg, @fin, 1)<>@sep and @fin < len(@msg)
begin
set @fin=@fin+1
end
insert into @table_return values( replace( substring(@msg, 1, @fin)
, @sep, '') )
set @msg = ltrim (rtrim ( replace (@msg, substring(@msg, 1, @fin),
'') ))
end
end

RETURN

END

go

select * from dbo.fcnSplit('string1:string2:string3:string4' , ':')

Saludos
Respuesta Responder a este mensaje
#5 Alejandro Mesa
27/06/2005 - 18:31 | Informe spam
Mauro,

como hariamos esto dinamico a la cantidad de elementos en el string?



No se a lo que te refieres, peor si la idea es simular arreglos en t-sql ,
entonces hechale una hojeada a este articulo.

Arrays and Lists in SQL Server
http://www.sommarskog.se/arrays-in-sql.html


AMB


"Mauro" wrote:

como hariamos esto dinamico a la cantidad de elementos en el string?

"Alejandro Mesa" wrote in message
news:
> Trata:
>
> use northwind
> go
>
> declare @s varchar(128)
> declare @a varchar(25)
> declare @b varchar(25)
> declare @c varchar(25)
> declare @d varchar(25)
>
> set @s = 'string1:string2:string3:string4'
>
> select
> @a = parsename(replace(@s, ':', '.'), 4),
> @b = parsename(replace(@s, ':', '.'), 3),
> @c = parsename(replace(@s, ':', '.'), 2),
> @d = parsename(replace(@s, ':', '.'), 1)
>
> select
> @a as [@a],
> @b as [@b],
> @c as [@c],
> @d as [@d]
> go
>
>
> AMB
>
>
> "Mauro" wrote:
>
> > como pudo separar lo siguiente:
> >
> > 'string1:string2:string3:string4'
> > en :
> > @a='string1'
> > @b='string2'
> > @c='string3'
> > @d='string4'
> >
> >
> >
> >



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida