Permet à l'aide des curseurs d'extraire une liste de nom pour les mettres sur une seul ligne séparé par une virgule. Y'a peut-être une meilleur solution pour faire la même chose mais l'idée est de montrer comment fonctionne les curseurs avec TSQL.
Code SQL :
Code SQL :
CREATE FUNCTION dbo.ExempleCurseur ( @NomVille nvarchar(100) ) RETURNS nvarchar(MAX) AS BEGIN DECLARE @List nvarchar(MAX) DECLARE @tmpNom nvarchar(101) SELECT @List = '' DECLARE OPList CURSOR FOR SELECT dbo.Clients.Nom FROM dbo.Clients WHERE (dbo.Clients.Ville= @NomVille) ORDER BY dbo.Clients.Nom OPEN OPList FETCH NEXT FROM OPList INTO @tmpNom WHILE (@@FETCH_STATUS=0) BEGIN SELECT @List=@List + @tmpNom + ', ' FETCH NEXT FROM OPList INTO @tmpNom END CLOSE OPList DEALLOCATE OPList IF @List IS NULL SELECT @List = 'n/a' ELSE SELECT @List = SUBSTRING(@List,1,LEN(@List)-1) -- Supprime la dernière virgule. RETURN @List END GO
Ecrit par: Rawheadrex, Le: 24/02/10
Dernièrement sur le forum
- 21/02 Test







