Comment puis-je tirer une liste d'ID à partir d'une table SQL en tant que chaîne de valeurs séparées par des virgules?
Je dois tirer une liste de integer Id d'une table en utilisant uniquement les enregistrements qui correspondent à certains critères. Par exemple:
Select ProdID From Products Where (ProdType='XYZ');
Le hic, c'est que je dois le retourner comme un ensemble de valeurs séparées par des virgules donc je peux l'utiliser pour sélectionner des éléments dans une liste à choix multiples:
111,231,554,112
plutôt que comme des dossiers. Je ne veux pas le faire dans mon code C# - j'aimerais qu'il vienne de la base de données via une requête de cette façon. Des idées?
source d'informationauteur Mark Brittingham
Vous devez vous connecter pour publier un commentaire.
En plus de @OMG Poneys méthode, vous pouvez également essayer cette FUSIONNENT truc de:
À l'aide de FUSIONNER pour Construire Délimité par des Virgules des Chaînes
MySQL
Oracle:
Il est un excellent résumé de la disponible de chaîne d'agrégation des techniques sur Tim Hall du site.
SQL Server 2005+
Pour SQL server, voir ici: Concaténer Des Valeurs Provenant De Plusieurs Lignes En Une Seule Colonne
C'est une très vieille question, mais je vais ajouter une réponse qui s'applique déjà accepté de répondre à l'aide de
COALESCE
par Justin Niessner. Cette application est la façon dont je l'aurais fait normalement souhaitez appliquer cette technique où je suis interrogation d'un parent et je veux aussi avoir une seule colonne qui contient une liste délimitée par des virgules de l'Id d'enfant.Ces exemples vont à l'encontre d'un
AdventureWorksLT
base de données créée dans Azure SQL Base de données si vous utilisez la liste déroulante pour sélectionner lorsque vous disposition une base de données. Rien de nouveau ici, juste une application pratique qui pourrait aider quelqu'un.La première requête est de savoir comment je vais l'utiliser normalement:
La deuxième requête affiche un auto-référencement de l'utilisation de celui-ci: