3 回答

TA貢獻1712條經(jīng)驗 獲得超3個贊
試試這個:
SQL Server 2005+
;with cte_name as(select * from <table> where ColumnName='name'), cte_phone as(select * from <table> where ColumnName='phone'), cte_email as(select * from <table> where ColumnName='email') select n.ItemID,n.Value [Name],p.Value [Phone],e.Value [Email] from cte_name n join cte_phone p on n.ItemID=p.ItemID join cte_email e on n.ItemID=e.ItemID
SQL小提琴演示

TA貢獻1817條經(jīng)驗 獲得超14個贊
你不需要動態(tài)透視,因為它將是一個不同的表。只需做這樣的事情:
name phone email
---------------------------------
Peter
123456
peter@host.com
檢查這個SQL小提琴
SELECT DISTINCT u.ItemID, n.Value as 'name', p.Value as 'phone', e.Value as 'email'
FROM UserData u
INNER JOIN(
SELECT ItemID, Value
FROM UserData WHERE ColumnName = 'name') n ON n.ItemID = u.ItemID
INNER JOIN(
SELECT ItemID, Value
FROM UserData WHERE ColumnName = 'phone') p ON p.ItemID = u.ItemID
INNER JOIN(
SELECT ItemID, Value
FROM UserData WHERE ColumnName = 'email') e ON e.ItemID = u.ItemID
- 3 回答
- 0 關注
- 575 瀏覽
添加回答
舉報