Advantage with 2nd solution is that if the data type of column whose value you want to concatenate is INT or any other noncharacter data type you don’t need to CONVERT it into varchar data type. In 1st solution you will need to convert the column to Varchar if its original data type is numeric. But 2nd solution will fail in case there are some in-between spaces in column values.

Now if you want to create the list using other delimiter, replace comma from above query with your required delimiter.

What do you mean by reverse of it?If you are looking for creating Comma Delimited string from row values then you can check my this blog entry - http://mangalpardeshi.blogspot.com/2009/03/how-to-split-comma-delimited-string.html