Basta ya de buscar por otras páginas ya que has llegado al sitio perfecto, poseemos la solución que buscas y sin problemas.
Solución:
Etiquetó la pregunta con sql-server y plsql, por lo que proporcionaré respuestas tanto para SQL Server como para Oracle.
En SQL Server puedes usar FOR XML PATH
para concatenar varias filas juntas:
select distinct t.[user],
STUFF((SELECT distinct ', ' + t1.department
from yourtable t1
where t.[user] = t1.[user]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,2,'') department
from yourtable t;
Consulte SQL Fiddle con demostración.
En Oracle 11g+ puedes usar LISTAGG
:
select "User",
listagg(department, ',') within group (order by "User") as departments
from yourtable
group by "User"
Ver SQL Fiddle con demostración
Antes de Oracle 11g, podía utilizar el wm_concat
función:
select "User",
wm_concat(department) departments
from yourtable
group by "User"
En Sql Server puedes usarlo.
DECLARE @UserMaster TABLE(
UserID INT NOT NULL,
UserName varchar(30) NOT NULL
);
INSERT INTO @UserMaster VALUES (1,'Rakesh')
INSERT INTO @UserMaster VALUES (2,'Ashish')
INSERT INTO @UserMaster VALUES (3,'Sagar')
SELECT * FROM @UserMaster
DECLARE @CSV VARCHAR(MAX)
SELECT @CSV = COALESCE(@CSV + ', ', '') + UserName from @UserMaster
SELECT @CSV AS Result
MYSQL: para obtener valores de columna como un valor separado por comas, use GROUP_CONCAT( )
funcionan como
GROUP_CONCAT( `column_name` )
por ejemplo
SELECT GROUP_CONCAT( `column_name` )
FROM `table_name`
WHERE 1
LIMIT 0 , 30
Comentarios y valoraciones del artículo
Más adelante puedes encontrar las críticas de otros desarrolladores, tú aún eres capaz dejar el tuyo si lo deseas.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)