sql数据透视表或类似数据透视表的内容
我想在我的两张桌子上做一个透视表 表1 个人电话sql数据透视表或类似数据透视表的内容,sql,sql-server,Sql,Sql Server,我想在我的两张桌子上做一个透视表 表1 个人电话 PersonID int not null phoneID int not null 表2 电话 我希望结果是 ---------|-------------|-------------|-------------| personID | phoneNumber | phoneNumber | phoneNumber |........ n times 有没有一种方法可以使用pivot表或一些很酷的sql在一行中列出personID及其所
PersonID int not null
phoneID int not null
表2
电话
我希望结果是
---------|-------------|-------------|-------------|
personID | phoneNumber | phoneNumber | phoneNumber |........ n times
有没有一种方法可以使用pivot表或一些很酷的sql在一行中列出personID及其所有电话号码?
select personID,[Foo],[Bar],[fooBar]
FROM (
SELECT pp.PersonID,phonetype,phoneNumber
FROM personToPhone AS PP
inner join phone as p on pp.phoneid = p.phoneid
where pp.personid = @PersonID) as tableToPivot
pivot (max(phoneNumber) for phoneType IN ([[Foo],[Bar],[fooBar])) as pivotTable
把大部分理论从这里扯了出去
把大部分理论从这里扯了出去
所有电话号码都是提前知道的。如果是这样的话,你可以使用关键字。从phoneid到personid的计数将是3。我说的是知道所有的电话号码。例如,您是否知道这10个人的全部30个电话号码,以便您可以将这些电话号码指定为输出列?是否所有电话号码都提前知道。如果是这样的话,你可以使用关键字。从phoneid到personid的计数将是3。我说的是知道所有的电话号码。例如,您是否知道10个人的全部30个电话号码,以便可以将电话号码指定为输出列?
select personID,[Foo],[Bar],[fooBar]
FROM (
SELECT pp.PersonID,phonetype,phoneNumber
FROM personToPhone AS PP
inner join phone as p on pp.phoneid = p.phoneid
where pp.personid = @PersonID) as tableToPivot
pivot (max(phoneNumber) for phoneType IN ([[Foo],[Bar],[fooBar])) as pivotTable