Check this query hope this will help you.
create table samplePivot(
Name varchar(50),
itemValue int
)
insert into samplePivot(Name,itemValue) values('John',100)
insert into samplePivot(Name,itemValue) values('John',1000)
insert into samplePivot(Name,itemValue) values('John',2000)
insert into samplePivot(Name,itemValue) values('Smith',100)
insert into samplePivot(Name,itemValue) values('Smith',300)
DECLARE @MyColumns AS NVARCHAR(MAX),
@SQLquery AS NVARCHAR(MAX)
select @MyColumns = STUFF((SELECT ',' + QUOTENAME(itemValue)
FROM samplePivot
GROUP BY itemValue
ORDER BY itemValue
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
select @MyColumns
set @SQLquery = N'SELECT Name,' + @MyColumns + N' from
(
SELECT
Name,
itemValue as itemValue
FROM samplePivot
) x
pivot
(
sum(itemValue)
for itemValue in (' + @MyColumns + N')
) p '
exec sp_executesql @SQLquery;