Другие ответы объяснили, почему это создает ваш список с разделителями-запятыми.Вы заметите, что в конце вы получите дополнительную запятую, которую вы можете удалить, если хотите.Если вы используете SQL Server 2005 или более позднюю версию, вы можете использовать COALESCE
и не иметь этой запятой:
SELECT @MyList = COALESCE(@MyList + ', ','') + Title FROM Titles
Для первой строки @MyList
будет NULL
, поэтому @MyList + ', '
будет иметь значение NULL
, а COALESCE
вернет ''
.По сути, обработка первой строки делает это:
SELECT @MyList = '' + Title
Для последующих строк COALESCE
вернет @MyList + ', '
, и вы получите эквивалент
SELECT @MyList = @MyList + ', ' + Title
.