You can use a Dynamic Pivot as follows as well:--Creating TableCreate Table Ex(sno int, type Char(1), typename varchar(30) )--Inserting Sample DataInsert Into ExSelect 1, 'V', 'llllll'Union ALLSelect 1, 'O', 'kkkkkk'Union ALLSelect 1, 'V', 'llll'Union ALLSelect 1, 'V', 'll'Union ALLSelect 1, 'O', 'kkkk'--Dynamic PivotDeclare @cols varchar(max), @sql varchar(max), @cols1 varchar(max)Declare @temp Table(Cols varchar(30))Insert Into @tempSelect 'COLUMN' + Cast(ROW_NUMBER() Over (Order By (Select (NULL))) As Varchar(max)) As rn From ExSelect @cols = Coalesce(@cols + ', ', '') + QUOTENAME(Cols) From @tempSelect @cols1 = Coalesce(@cols1 + '), Max(', '') + QUOTENAME(Cols) From @tempSelect @cols1 = 'Max(' + @cols1 + ')'Set @sql = 'Select sno, '+@cols1+' From (Select sno, '+@cols+' From (Select *, ''COLUMN'' + Cast(ROW_NUMBER() Over (Order By (Select (NULL))) As Varchar(max)) As rn From Ex) As a Pivot (max(typename) For rn IN ('+@cols+')) As pvt) As x Group By sno'Execute (@sql)
N 28° 33' 11.93148"E 77° 14' 33.66384"