我在UserProfile
表中有一個名爲PropertyValue
的字段,其中可以包含地址,電話號碼,名字,姓氏,用戶名,城市等信息......此表中的每個記錄都通過UserId與用戶相關聯,它也與一個ProfilePropertyDefinition
關聯,其中包含每個屬性(即PropertyName)的定義。如何從SQL Server中的一個數據庫字段創建多個列?
通過這種關係,我可以得到所有的屬性值及其屬性名稱。我想怎麼做才能提取這兩列(的PropertyValue,屬性名)的數據,並創建一個類似的表:
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'))
但是,沒有工作,有些事情似乎很奇怪吧......任何人都知道如何採取一列,顯示它在幾個不同列中的值?
爲什麼有人對此讚不絕口嗎?什麼使得這個答案比其他人更好?我想知道,所以我可以選擇最好的答案... – Matt 2009-07-28 21:05:22
我不知道,我會嘗試這一點,並將性能與我的解決方案進行比較。我認爲如果表格很大,並且你有很多要建立的字段(因爲這個解決方案使用每個字段的聯接),你會發現我的表現要好得多。 – automatic 2009-07-31 18:26:24