Questa funzione T-SQL permette di concatenare il risultato di una select in una stringa dove, i valori dei campi, sono seprati da una virgola.

SQL

CREATE FUNCTION dbo.fnProvinceToString 
(
	@codRegione char(3)
)
RETURNS varchar(1000)
AS
BEGIN
  DECLARE @result varchar(1000)
  SET @result = null

  -- concateno il risultato nella variabile @result
  SELECT @result = IsNull(@result + ',', '') + T.[codProvincia]
  FROM dbo.[TabProvince] T
  WHERE T.[codRegione] = @codRegione 
  ORDER BY T.[codProvincia]
  
  RETURN @result
END
Ad esempio partendo da questa tabella:
#class=table-striped
CodProvincia;Provincia;CodRegione
BG;Bergamo;LOM
BS;Brescia;LOM
CO;Como;LOM
CR;Cremona;LOM
LC;Lecco;LOM
LO;Lodi;LOM
MB;Monza e Brianza;LOM
MI;Milano;LOM
MN;Mantova;LOM
PV;Pavia;LOM
SO;Sondrio;LOM
VA;Varese;LOM
posso usare la funzione dbo.fnProvinceToString per farmi ritornare tutte le sigle provicia in un unica stringa separati dalla virgola:

SQL

SELECT dbo.fnProvinceToString('LOM')
da come risultato

Text

BG,BS,CO,CR,LC,LO,MB,MI,MN,PV,SO,VA
Vedi anche Split di una stringa in una tabella
Tags:
Database75 SQL90 SQL Server100 T-SQL66
Potrebbe interessarti anche: