J'ai une tableConcatenate ORDER PRESERVATION
tblSomeData
OrderOccurance ID Data
-------------- -- ----
1 1 HTMedia
2 1 Hedge
3 1 Bowing
4 1 FonWirelessLtd
La première colonne "OrderOccurance" indique dans quel ordre les éléments à savoir les données apparaîtront dans la sortie finale
Le Sortie attendue sera
ID Data
-- -----
1 HTMedia,Hedge,Bowing,FonWirelessLtd
je l'ai fait le programme ci-dessous
Select
ID
, Data = stuff((Select ',' + Cast(Data As Varchar(20)) From tblSomeData t2
Where t2.ID = t1.ID for xml path('')),1,1,'')
From tblSomeData t1
Group by t1.ID
Je reçois la sortie comme
ID Data
-- -----
1 Bowing,FonWirelessLtd,Hedge,HTMedia
Il semble que, FOR sortes PATH() XML par lui-même et exécute alors la concaténation.
Comment puis-je apporter la sortie attendue.
J'utilise SQL Server 2005.
Merci
C'est très bien monsieur .. 1 question de plus. Généralement, dans les sous-requêtes, nous ne pouvons pas écrire l'ordre par clause. Le serveur sql signale une erreur (pour autant que je sache ... veuillez me corriger si je me trompe). Alors pourquoi ça marche dans ce cas? – learner
@learner: Je ne saurais pas pourquoi ORDER BY ne devrait pas fonctionner dans une sous-requête - attention à montrer un exemple concret ?? –