Séparer résultat d'une requête

Fermé
hamdys Messages postés 2 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 février 2016 - Modifié par hamdys le 10/02/2016 à 15:57
hamdys Messages postés 2 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 février 2016 - 11 févr. 2016 à 09:36
Bonjour

Je cherche à créer une fonction qui permet de retourner résultat sous forme d'une ligne séparer par une virgule de facon Nom1, Nom2...
en ce qui suit la fonction que j'ai créé merci de la rectifier

MERCI

CREATE FUNCTION [dbo].[LISTE](@ID INT)
RETURNS VARCHAR (MAX)

AS
BEGIN
DECLARE @chaine VARCHAR (MAX)
SELECT @chaine=NOM+',' FROM Enseignant
WHERE @ID IN (SELECT ID FROM Enseignant)


RETURN @chaine
END
GO

2 réponses

hamdys Messages postés 2 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 février 2016
11 févr. 2016 à 09:36
Bonjour,
en faite je veux chercher à l'aide d'un id spécifique la liste des NOMS qui lui correspond
j'ai essaie cette fonction mais j'obtiens toujours le mm résultat avec des IDs différents
"
CREATE FUNCTION [dbo].[LISTE](@ID INT)
RETURNS VARCHAR (MAX)

AS
BEGIN
DECLARE @chaine VARCHAR (MAX)
SELECT @chaine=COALESCE(@chaine + ',', '') + NOM
FROM Enseignant
WHERE @ID IN (SELECT ID FROM Enseignant)


RETURN @chaine
END
GO
"

MERCI
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
10 févr. 2016 à 16:34
Bonjour,


Je cherche à créer une fonction qui permet de retourner résultat sous forme d'une ligne séparer par une virgule de facon Nom1, Nom2...


Pourquoi faire ???
Il existe déjà la fonction CONCAT pour ça !
https://docs.microsoft.com/fr-fr/sql/t-sql/functions/concat-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15


-1
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
10 févr. 2016 à 16:38
Et si les données à concatener sont issues de plusieurs lignes ... l'équivalent de GROUP_CONCAT en mysql qui est :
http://blog.shlomoid.com/2008/11/emulating-mysqls-groupconcat-function.html
0