Concatenar string y devolver solo una columna

13/12/2004 - 19:18 por Carlos A. Díaz | Informe spam
Hola, quisiera hacer un sp que me devuelva por cada registro una string con,
por ejemplo los permisos de cada usuario.

Gracias por la ayuda

Carlos

Preguntas similare

Leer las respuestas

#1 ulises
13/12/2004 - 19:37 | Informe spam
La verdad que no te entendí, ¿podrías ser un poco más
específico sobre lo que tienes y cual es el resultado que
deseas?

Saludos,
Ulises

Hola, quisiera hacer un sp que me devuelva por cada


registro una string con,
por ejemplo los permisos de cada usuario.

Gracias por la ayuda

Carlos


.

Respuesta Responder a este mensaje
#2 Carlos A. Díaz
13/12/2004 - 20:06 | Informe spam
perdon, el resultado que quisiera es

ID NOMBRE ROLES
1 CARLOS Rol1,Rol2
2 Pepe Rol2,Rol3,Rol4

que el sp me devuelva en el campo Roles la concatenacion del resultado de un
conjunto de filas

Me explico ?

"ulises" escribió en el mensaje
news:352001c4e142$c92c95d0$
La verdad que no te entendí, ¿podrías ser un poco más
específico sobre lo que tienes y cual es el resultado que
deseas?

Saludos,
Ulises

Hola, quisiera hacer un sp que me devuelva por cada


registro una string con,
por ejemplo los permisos de cada usuario.

Gracias por la ayuda

Carlos


.

Respuesta Responder a este mensaje
#3 Carlos Enrique Morales
13/12/2004 - 22:16 | Informe spam
¿Algo así como esto?

use pubs

declare @nombres varchar(4000)
set @nombres = ''

select @nombres = @nombres +
'|' +
stor_name
from stores

select "Nombres de Tiendas" = @nombres

En la variable @nombres se concatena el valor almacenado en el atributo
stor_name de cada tupla de la entidad stores


"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en el
mensaje news:
Hola, quisiera hacer un sp que me devuelva por cada registro una string
con, por ejemplo los permisos de cada usuario.

Gracias por la ayuda

Carlos

Respuesta Responder a este mensaje
#4 Liliana Sorrentino
16/12/2004 - 19:26 | Informe spam
Hola Carlos,
Al no tener la estructura de tus tablas no es fácil, pero fijate este
ejemplo, tal vez puedas adaptar tu información como ésta.
Saludos, Liliana.

create table #Tareas
(TabId smallint,
TabNombre varchar(40),
TabOrden smallint)

insert #Tareas values ( 1, 'Consulta', 1)
insert #Tareas values ( 2, 'Actualizacion', 2)
insert #Tareas values ( 3, 'Borrado', 3)

create table #Roles
(RoleId smallint,
RoleNombre varchar(40))

insert #Roles values ( 1, 'Usuario')
insert #Roles values ( 2, 'Dueño')
insert #Roles values ( 3, 'Administrador')
insert #Roles values ( 4, 'Invitado')

create table #Tareas_Roles
(TabId smallint,
RoleId smallint)

insert #Tareas_Roles values ( 1, 1)
insert #Tareas_Roles values ( 1, 2)
insert #Tareas_Roles values ( 1, 3)
insert #Tareas_Roles values ( 1, 4)
insert #Tareas_Roles values ( 2, 2)
insert #Tareas_Roles values ( 2, 3)
insert #Tareas_Roles values ( 3, 3)


SELECT #Tareas.TabId,
#Tareas.TabNombre,
Autorizados COALESCE(MAX(CASE #Tareas_Roles.RoleId WHEN 1 THEN #Roles.RoleNombre
+ ',' END), SPACE(0)) +
COALESCE(MAX(CASE #Tareas_Roles.RoleId WHEN 2 THEN #Roles.RoleNombre
+ ',' END), SPACE(0)) +
COALESCE(MAX(CASE #Tareas_Roles.RoleId WHEN 3 THEN #Roles.RoleNombre
+ ',' END), SPACE(0)) +
COALESCE(MAX(CASE #Tareas_Roles.RoleId WHEN 4 THEN #Roles.RoleNombre
+ ',' END), SPACE(0))
FROM #Tareas
INNER JOIN #Tareas_Roles ON #Tareas.TabId = #Tareas_Roles.TabId
INNER JOIN #Roles ON #Tareas_Roles.RoleId = #Roles.RoleId
GROUP BY #Tareas.TabId,
#Tareas.TabNombre

drop table #Tareas
drop table #Roles
drop table #Tareas_Roles


"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en el
mensaje news:
perdon, el resultado que quisiera es

ID NOMBRE ROLES
1 CARLOS Rol1,Rol2
2 Pepe Rol2,Rol3,Rol4

que el sp me devuelva en el campo Roles la concatenacion del resultado de


un
conjunto de filas

Me explico ?

"ulises" escribió en el mensaje
news:352001c4e142$c92c95d0$
La verdad que no te entendí, ¿podrías ser un poco más
específico sobre lo que tienes y cual es el resultado que
deseas?

Saludos,
Ulises

>Hola, quisiera hacer un sp que me devuelva por cada
registro una string con,
>por ejemplo los permisos de cada usuario.
>
>Gracias por la ayuda
>
>Carlos
>
>
>.
>


Respuesta Responder a este mensaje
#5 Carlos A. Díaz
17/12/2004 - 14:46 | Informe spam
Muchas gracias Liliana segun la el ejemplo de Carlos

Saludos

"Liliana Sorrentino" escribió en el mensaje
news:
Hola Carlos,
Al no tener la estructura de tus tablas no es fácil, pero fijate este
ejemplo, tal vez puedas adaptar tu información como ésta.
Saludos, Liliana.

create table #Tareas
(TabId smallint,
TabNombre varchar(40),
TabOrden smallint)

insert #Tareas values ( 1, 'Consulta', 1)
insert #Tareas values ( 2, 'Actualizacion', 2)
insert #Tareas values ( 3, 'Borrado', 3)

create table #Roles
(RoleId smallint,
RoleNombre varchar(40))

insert #Roles values ( 1, 'Usuario')
insert #Roles values ( 2, 'Dueño')
insert #Roles values ( 3, 'Administrador')
insert #Roles values ( 4, 'Invitado')

create table #Tareas_Roles
(TabId smallint,
RoleId smallint)

insert #Tareas_Roles values ( 1, 1)
insert #Tareas_Roles values ( 1, 2)
insert #Tareas_Roles values ( 1, 3)
insert #Tareas_Roles values ( 1, 4)
insert #Tareas_Roles values ( 2, 2)
insert #Tareas_Roles values ( 2, 3)
insert #Tareas_Roles values ( 3, 3)


SELECT #Tareas.TabId,
#Tareas.TabNombre,
Autorizados > COALESCE(MAX(CASE #Tareas_Roles.RoleId WHEN 1 THEN #Roles.RoleNombre
+ ',' END), SPACE(0)) +
COALESCE(MAX(CASE #Tareas_Roles.RoleId WHEN 2 THEN #Roles.RoleNombre
+ ',' END), SPACE(0)) +
COALESCE(MAX(CASE #Tareas_Roles.RoleId WHEN 3 THEN #Roles.RoleNombre
+ ',' END), SPACE(0)) +
COALESCE(MAX(CASE #Tareas_Roles.RoleId WHEN 4 THEN #Roles.RoleNombre
+ ',' END), SPACE(0))
FROM #Tareas
INNER JOIN #Tareas_Roles ON #Tareas.TabId = #Tareas_Roles.TabId
INNER JOIN #Roles ON #Tareas_Roles.RoleId = #Roles.RoleId
GROUP BY #Tareas.TabId,
#Tareas.TabNombre

drop table #Tareas
drop table #Roles
drop table #Tareas_Roles


"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en el
mensaje news:
perdon, el resultado que quisiera es

ID NOMBRE ROLES
1 CARLOS Rol1,Rol2
2 Pepe Rol2,Rol3,Rol4

que el sp me devuelva en el campo Roles la concatenacion del resultado de


un
conjunto de filas

Me explico ?

"ulises" escribió en el mensaje
news:352001c4e142$c92c95d0$
La verdad que no te entendí, ¿podrías ser un poco más
específico sobre lo que tienes y cual es el resultado que
deseas?

Saludos,
Ulises

>Hola, quisiera hacer un sp que me devuelva por cada
registro una string con,
>por ejemplo los permisos de cada usuario.
>
>Gracias por la ayuda
>
>Carlos
>
>
>.
>






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