我使用SQL Server 2008的T-SQL PIVOT:一列列名,其餘的重視
我有兩個表
User
(UserID, Name, Link
)UserNotes
(NoteID, UserID, Title, Description
)
這是示例數據結構。
INSERT INTO [User]
([UserID], [Name], [Link])
VALUES
(1, 'John', 'L1'),
(2, 'Steve', 'L234');
INSERT INTO [UserNotes]
([NoteID], [UserID], [Title], [Description])
VALUES
(1, 1, 'AboutJohn', 'This is about john'),
(2, 1, 'John Work', 'This is where John work'),
(3, 1, 'John Education', 'This is the uni where John go'),
(4, 2, 'Steve Note1', 'Des1 about Steve'),
(5, 2, 'Steve Note2', 'Des2 about Steve');
這裏是SQL Fiddle
我想創建視圖(User_view
)如下,當我執行該命令,輸出應爲如下。子表的
SELECT * FROM User_view WHERE UserID IN (1)
UserID Name AboutJOhn JohnWork JohnEducation
1 John This is about john This is where Johnwork This is the uni where John go
Title
欄應該成爲列名和Description
應該成爲該列的值,我們不知道有多少行,我們都會有。當我們選擇兩個用戶以及使用哪個名稱的列名時,我意識到了這個問題。在這種情況下,我們可以爲多個用戶使用(Note1,Note2,Note3等),否則使用標題字段作爲列名稱。是否有可能這樣做?乾杯!