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

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

  1. 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
    1. Modérateur
      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