Select multiple rows in one column in SQL

By using FOR XML we can do this

NAME MOBILE
AAA 1234567890
AAA 3254656796
BBB 3243242343
BBB 2343242326
DDD 344453345
EEE 5243242343
FFF 9223442343

DEMO

NAME MOBILE
AAA 1234567890,3254656796
BBB 3243242343,2343242326
DDD 344453345
EEE 5243242343
FFF 9223442343

DEMO

Inserting comma separated values in to individual rows in MS SQL


	DECLARE @String_Pos int,@String_Len int,@String_Cont nvarchar(100),@CommaSeparatedValues nvarchar(max)
	SET @CommaSeparatedValues='1|2|3|4|5|6|7|8'

	SELECT @String_Pos=0
	SELECT @CommaSeparatedValues = @CommaSeparatedValues + '|'

	WHILE CHARINDEX('|',@CommaSeparatedValues) > 1
	BEGIN
		SELECT @String_Pos=CHARINDEX('|',@CommaSeparatedValues)
		SELECT @String_Cont = RTRIM(SUBSTRING(@CommaSeparatedValues,1,@String_Pos-1))
		INSERT INTO TABLE(CommaSeparatedValue) VALUES(@String_Cont)
		SELECT @String_Len = LEN(@CommaSeparatedValues)
		SELECT @CommaSeparatedValues=SUBSTRING(@CommaSeparatedValues,@String_Pos+1,@String_Len)
	END

DEMO

Sql Cursor

A cursor is a temporary work area created in the system memory when a SQL statement is executed. A cursor contains information on a select statement and the rows of data accessed by it.

EXAMPLE:

DECLARE @ID int,@Name varchar(50)
DECLARE CursorVar CURSOR LOCAL FOR SELECT ID,Name FROM TABLE 
OPEN CursorVar
	FETCH NEXT FROM CursorVar into @ID,@Name
	WHILE @@FETCH_STATUS = 0
	BEGIN
	    SELECT @ID,@Name	 
		FETCH NEXT FROM CursorVar into @ID,@Name
	END 
CLOSE CursorVar
DEALLOCATE CursorVar