Test it:
DECLARE @tmp TABLE (SNO INT IDENTITY(1,1), PRODNAME VARCHAR(30), ENERGY INT, PROTEIN INT, CALCIUM INT)
INSERT INTO @tmp (PRODNAME, ENERGY, PROTEIN, CALCIUM)
VALUES('ABC', 156, 134, 195),
('DEF', 123, 345, 345),
('ERT', 134, 345, 456)
SELECT *
FROM @tmp
SELECT SNO, PRODNAME, NUTRITENT, [VALUE]
FROM (
SELECT SNO, PRODNAME, ENERGY, PROTEIN, CALCIUM
FROM @tmp
) AS Pvt
UNPIVOT ([VALUE] FOR NUTRITENT IN ([ENERGY],[PROTEIN],[CALCIUM])) AS UnPvt
Results:
1 ABC ENERGY 156
1 ABC PROTEIN 134
1 ABC CALCIUM 195
2 DEF ENERGY 123
2 DEF PROTEIN 345
2 DEF CALCIUM 345
3 ERT ENERGY 134
3 ERT PROTEIN 345
3 ERT CALCIUM 456
For further information, please see:
Using PIVOT and UNPIVOT[
^]