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

hamdys Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
hamdys Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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