2010-11-11 17 views
0

J'ai des difficultés à récupérer une liste séparée par des virgules à partir de MSAccess à l'aide de SQL. C'est très facile à faire avec SQL Server et je l'ai accompli là-bas. Mais la solution MSAccess semble m'échapper.Comment faire pour récupérer une liste séparée par des virgules pour MSAccess SQL

DECLARE @EmployeeList varchar(100) 

SELECT @EmployeeList = COALESCE(@EmployeeList + ', ', '') + 
     CAST(Emp_UniqueID AS varchar(5)) 
FROM SalesCallsEmployees 
WHERE SalCal_UniqueID = 1 

SELECT @EmployeeList 

http://www.sqlteam.com/article/using-coalesce-to-build-comma-delimited-string

Quelqu'un at-il accompli cela en utilisant MS Access ou suis-je simplement condamné à ne jamais obtenir des listes comme cela par SQL?

+3

Le SQL ci-dessus a pas d'équivalent dans Jet/ACE. Il n'y a pas d'option avec Jet/ACE autre que la marche du jeu d'enregistrements et la concaténation de la chaîne. –

+1

@ David-W-Fenton Je ne suis pas sûr de ce que vous entendez par cela en ce que j'ai déjà répondu qu'il est possible de SELECT Field & ",", qui n'est certainement pas l'équivalent de ce qui précède, mais je ne pense pas pourrait être appelé "marcher le jeu d'enregistrements", soit. – Fionnuala

+2

Eh bien, il ne fait pas ce qui a été demandé, non? Votre solution peut uniquement concaténer des colonnes dans une seule ligne, mais ce qui est nécessaire est la concaténation des valeurs dans différentes lignes (au moins, dans la mesure où je comprends la question et la réponse COALESCE()). –

Répondre

1

Vous pouvez sélectionner les champs (colonnes) un par un:

SELECT ID & ",", Other & "," 
FROM table 
+0

Je dois sélectionner la même colonne. Donc je fais "Sélectionnez le nom de catégories où Category.ParentID = 1", pas sûr si cela fonctionne dans ce scénario –

+0

Cela fonctionnera bien, l'où et sélectionnez sont deux déclaration distincte. – Fionnuala