PersId PersonUID PersonnelName 137 01066141L PREM SINGH 128 02679425F RADHAKRISHANAN 129 1066141L PREM SINGH 130 04457802P MOTI SINGH 135 02365847P Ramesh
CREATE TABLE #DataTable (Attribute_SubID INT, AttributeID INT, Attribute_Sub NVARCHAR(50));INSERT INTO #DataTable (Attribute_SubID, AttributeID, Attribute_Sub) VALUES (3, 2, 'xyz'), (4, 2, 'abc'), (3, 2, 'def'); DECLARE @ColumnsTable TABLE (Col VARCHAR(10));INSERT INTO @ColumnsTable (Col)SELECT DISTINCT Attribute_SubID FROM #DataTable;DECLARE @SQL VARCHAR(MAX);SET @SQL = ';WITH DataAS(SELECT Attribute_SubID, Attribute_Sub, ROW_NUMBER() OVER (PARTITION BY Attribute_SubIDORDER BY Attribute_Sub desc) AS RowNumberFROM #DataTablewhere Attribute_Sub <> ''--'')SELECT ' + (SELECT STUFF((SELECT ', ISNULL([' + Col + '], ''--'') AS [' + Col + ']'FROM @ColumnsTableFOR XML PATH('')), 1, 2, '')) +'FROM DataPIVOT(MAX(Attribute_Sub)FOR Attribute_SubID IN(' + (SELECT STUFF((SELECT ', [' + Col + ']'FROM @ColumnsTableFOR XML PATH('')), 1, 2, '')) + ')) AS pvt;';--SELECT @SQL; EXEC(@SQL); DROP TABLE #DataTable;
CREATE TABLE #DataTable (Attribute_SubID INT, AttributeID INT, Attribute_Sub NVARCHAR(50)); INSERT INTO #DataTable (Attribute_SubID, AttributeID, Attribute_Sub) VALUES (3, 2, 'xyz'), (4, 2, 'abc'), (3, 2, 'def'); DECLARE @ColumnsTable TABLE (Col VARCHAR(10)); INSERT INTO @ColumnsTable (Col)SELECT DISTINCT Attribute_SubID FROM #DataTable; DECLARE @SQL VARCHAR(MAX); SET @SQL = ';WITH DataAS( SELECT Attribute_SubID, Attribute_Sub, ROW_NUMBER() OVER (PARTITION BY Attribute_SubID ORDER BY Attribute_Sub desc) AS RowNumber FROM #DataTable where Attribute_Sub <> ''--'')SELECT ' + (SELECT STUFF((SELECT ', ISNULL([' + Col + '], ''--'') AS [' + Col + ']' FROM @ColumnsTable FOR XML PATH('')), 1, 2, '')) +'FROM DataPIVOT( MAX(Attribute_Sub) FOR Attribute_SubID IN (' + (SELECT STUFF((SELECT ', [' + Col + ']' FROM @ColumnsTable FOR XML PATH('')), 1, 2, '')) + ')) AS pvt;'; --SELECT @SQL;EXEC(@SQL); DROP TABLE #DataTable;