separar - MySQL Resultados como lista separada por comas
separar cadena delimitada por comas en sql server (3)
Necesito ejecutar una consulta como:
SELECT p.id, p.name,
(SELECT name
FROM sites s
WHERE s.id = p.site_id) AS site_list
FROM publications p
Pero me gustaría que la selección secundaria devuelva una lista separada por comas, en lugar de una columna de datos. ¿Es esto posible, y si es así, cómo?
En lugar de usar el group concat()
, puede usar solo concat()
Select concat(Col1, '','', Col2) as Foo_Bar from Table1;
editar esto solo funciona en mySQL; Oracle concat solo acepta dos argumentos. En Oracle, puede usar algo como select col1 || '','' || col2 || '','' || col3 como foobar de table1; en el servidor sql usaría + en lugar de tuberías.
En mi caso, debo concatenar todo el número de cuenta de una persona cuyo número de móvil es único. Así que he usado la siguiente consulta para lograr eso.
SELECT GROUP_CONCAT(AccountsNo) as Accounts FROM `tblaccounts` GROUP BY MobileNumber
El resultado de la consulta es a continuación:
Accounts
93348001,97530801,93348001,97530801
89663501
62630701
6227895144840002
60070021
60070020
60070019
60070018
60070017
60070016
60070015
Puede usar GROUP_CONCAT para realizar eso, por ejemplo, algo así como
SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list
FROM sites s
INNER JOIN publications p ON(s.id = p.site_id)
GROUP BY p.id, p.name;