【发布时间】:2010-11-14 20:17:39
【问题描述】:
我在UserProfile 表中有一个名为PropertyValue 的字段,其中可以包含地址、电话号码、名字、姓氏、用户名、城市等信息...此表中的每条记录都与UserId 的用户,它还与包含每个属性的定义的ProfilePropertyDefinition 相关联(即PropertyName)。
通过这种关系,我可以获得所有属性值及其属性名称。我想做的是从这两列(PropertyValue,PropertyName)中提取数据并创建一个类似的表:
First Name | Last Name | Email | Phone | City | Country
-------------------------------------------------------
| | | | |
所以,我想知道是否可以使用 SQL 语句来执行此操作,这是我的尝试:
SELECT FirstName = (SELECT PropertyValue FROM UserProfile WHERE PropertyDefinitionID = (SELECT PropertyDefinitionID WHERE PropertyName = 'first name')),
LastName = (SELECT PropertyValue FROM UserProfile WHERE PropertyDefinitionID = (SELECT PropertyDefinitionID WHERE PropertyName = 'last name')),
Email = (SELECT PropertyValue FROM UserProfile WHERE PropertyDefinitionID = (SELECT PropertyDefinitionID WHERE PropertyName = 'email'))
但这并没有奏效,而且似乎有些奇怪...有人知道如何获取一列并将其值显示在几个不同的列中吗?
【问题讨论】:
标签: sql-server select join subquery table-relationships