2011-11-09 10 views
1

可能性の重複:
Simulating group_concat MySQL function in MS SQL Server 2005?
Concat field value to string in SQL ServerSQL Server内のカンマ区切りの結果を作成します

、ユーザーとキーワード関わる2つのテーブルがあります。

ユーザー
のuserId
のfirstName
lastNameの
...

キーワード
のuserId
キーワード

私はこのクエリを実行した場合:

select u.userId, u.firstName, u.lastName, k.keyword 
from Users as u 
inner join Keywords as k on u.userId = k.userId 

私はこのような何かを得る:私が欲しいもの

enter image description here

はこれです:

enter image description here

This looked very similar to what I wanted私はそれが正しく動作するように見えることはできません。

答えて

1
SELECT 
     u.userId, 
     u.firstName, 
     u.lastName, 
     (select keyword +', ' from Keywords tk where tk.userid= u.userid for xml path ('') ) as keyword 
    FROM 
     Users AS u 

テストのサンプルクエリ:

declare @Users as table(
userid int, 
firstname varchar(20), 
lastname varchar(20) 

) 

declare @Keywords as table(
userid int, 
keyword varchar(20) 

) 

insert into @Users 
values(
1, 'Bob','Sanders' 
), 
(
2, 'Jamie','Smith' 
) 

insert into @Keywords 
values 
(1,'Cars'), 
(1,'Pizza'), 
(2,'Tomato'), 
(2,'Blah') 

SELECT 
     u.userId, 
     u.firstName, 
     u.lastName, 
     (select keyword +', ' from @Keywords tk where tk.userid= u.userid for xml path ('') ) as keyword 
    FROM 
     @Users AS u 

戻り値:

userId firstName lastName keyword 
1  Bob   Sanders  Cars, Pizza, 
2  Jamie  Smith  Tomato, Blah, 
0

クエリあなたであれば、テキストを連結して使用するために、新しいSQL集計機能concatを作成することができます。

select userId, firstName, Lastname, concat(Keyword) 
from Users 
group by userId, firstName, Lastname; 

Follwoingリンクは、concat機能の作成方法の例を示しています。 http://msdn.microsoft.com/en-us/library/ms182741.aspx

1
;WITH a AS (
    SELECT 
    u.userId, 
    u.firstName, 
    u.lastName, 
    (SELECT k.keyword + ',' 
     FROM Keywords k 
     WHERE k.userId = u.userId 
     ORDER BY k.keyword 
     FOR XML PATH('') 
    ) AS [keyword] 
    FROM Users u 
) 
SELECT 
    a.userId, 
    a.firstName, 
    a.lastName, 
    -- strip off trailing comma 
    LEFT(
    a.keyword, 
    LEN(a.keyword)-1 
) AS keyword 
FROM a 
関連する問題