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

hamdys Messages postés 2 Statut Membre -  
hamdys Messages postés 2 Statut Membre -
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
A voir également:

2 réponses

hamdys Messages postés 2 Statut Membre
 
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 40050 Statut Modérateur 4 757
 
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 40050 Statut Modérateur 4 757
 
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