OVH Cloud OVH Cloud

Concaténer des chaînes dans un regroupement.

10 réponses
Avatar
Fred
Bonjour,

Y a-t-il un moyen de concaténer le contenu d'un champ de type caractères
dans une requête avec regroupement ?

Merci !

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT

10 réponses

Avatar
synopsis
select chaine_1+chaine_2, count(*) n
from tbl
group by chaine_1+chaine_2


"Fred" a écrit dans le message de news:
%
Bonjour,

Y a-t-il un moyen de concaténer le contenu d'un champ de type caractères
dans une requête avec regroupement ?

Merci !

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT


Avatar
Fred
Dans : news:442d7c76$0$11730$,
synopsis disait :

"Fred" a écrit dans le message de news:
%



Y a-t-il un moyen de concaténer le contenu d'un champ de type
caractères dans une requête avec regroupement ?





select chaine_1+chaine_2, count(*) n
from tbl
group by chaine_1+chaine_2



Merci pour cette réponse mais ce n'est pas ce à quoi je pensais.
Je précise avec un pseudo code :

Select Concat(champ1), champ2
From tbl
Group By champ2


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
synopsis
il faut passer par une procédure stockée ou une fonction, dans laquelle vous
utilisé un curseur.




"Fred" a écrit dans le message de news:

Dans : news:442d7c76$0$11730$,
synopsis disait :

"Fred" a écrit dans le message de news:
%



Y a-t-il un moyen de concaténer le contenu d'un champ de type
caractères dans une requête avec regroupement ?





select chaine_1+chaine_2, count(*) n
from tbl
group by chaine_1+chaine_2



Merci pour cette réponse mais ce n'est pas ce à quoi je pensais.
Je précise avec un pseudo code :

Select Concat(champ1), champ2
From tbl
Group By champ2


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT


Avatar
Fred
Dans : news:442d9795$0$7737$,
synopsis disait :

il faut passer par une procédure stockée ou une fonction, dans
laquelle vous utilisez un curseur.



Oui.
Je n'ai pas trouvé d'autre solution.
Et je ne sais pas créer de fonctions d'agrégation, si tant est que cela
soit possible.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Med Bouchenafa
Les fonctions d'aggrégations ne sont disponibles qu'avec SQL Server 2005

--
Bien cordialement
Med Bouchenafa
"Fred" a écrit dans le message de news:

Dans : news:442d9795$0$7737$,
synopsis disait :

il faut passer par une procédure stockée ou une fonction, dans
laquelle vous utilisez un curseur.



Oui.
Je n'ai pas trouvé d'autre solution.
Et je ne sais pas créer de fonctions d'agrégation, si tant est que cela
soit possible.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT


Avatar
Fred
Dans : news:,
Med Bouchenafa disait :
Les fonctions d'aggrégations ne sont disponibles qu'avec SQL Server
2005



Ah ? Vous m'intéressez là :-)
Et sous SQL Express 2005 ? Je n'ai pas vu dans le «book online» installé
avec.
Pouvez-vous orienter ma recherche (un mot-clé) ?


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Med Bouchenafa
CREATE AGGREGATE

--
Bien cordialement
Med Bouchenafa

"Fred" a écrit dans le message de news:
%
Dans : news:,
Med Bouchenafa disait :
Les fonctions d'aggrégations ne sont disponibles qu'avec SQL Server
2005



Ah ? Vous m'intéressez là :-)
Et sous SQL Express 2005 ? Je n'ai pas vu dans le «book online» installé
avec.
Pouvez-vous orienter ma recherche (un mot-clé) ?


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT


Avatar
Fred
Dans : news:,
Med Bouchenafa disait :
CREATE AGGREGATE



Merci, je vais potasser cela :-)


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Fred
Dans : news:
Med Bouchenafa écrit :
CREATE AGGREGATE



Vu,
Très intéressante cette intégration du CLR.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Steve Kass
Avec CREATE AGGREGATE, la concaténation ne peut
pas dépasser une longueur de 8000 octets. Plus facile,
sans limite, et sans besoin de CLR serait d'utiliser XML,
comme dans cet exemple sur la BD Northwind:

select CustomerID,
substring(OrdIdList, 1, datalength(OrdIdList)/2 - 1)
-- effacer ',' du fin
from
Customers c cross apply
(select convert(nvarchar(30), OrderID) + ',' as [text()]
from Orders o
where o.CustomerID = c.CustomerID
order by o.OrderID
for xml path('')) as Dummy(OrdIdList)
go

-- Steve Kass
-- Drew University

Med Bouchenafa wrote:

CREATE AGGREGATE