2012-03-12 10 views
1

航空機と顧客のオプションを持つテーブルがあります。私はCUST二回私の結果リストの列と行を連結する

Cust | options | 
------------------------ 
A  | abcdef |  
A  |  ghi | 
B  |  mno | 
F  |  pqr | 

どのように私は結果となるよう、さらに、このクエリを凝縮することができます取得私はもちろん

SELECT 
Cust, 
opt1 + opt2 as options   
FROM myDB where Len(opt1) >1 or Len(opt2) >1 

を使用

例えば

Cust | opt1 | opt2 
------------------------ 
A  | abc | def 
B  |  | mno 
F  |  | pqr 
A  |  | ghi 

Cust | options | 
------------------------ 
A  | abcdefghi |  
B  |  mno  | 
F  |  pqr  | 

ありがとう! (SQL Server Expressでの作業)

答えて

2
SELECT DISTINCT c.Cust, options = ((SELECT c2.opt1 + c2.opt2 
    FROM dbo.myDB AS c2 WHERE c2.Cust = c.Cust 
    FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)')) 
FROM dbo.myDB AS c; 
+1

これが簡単になると思うなら、私はあなたに同意します!これらの2つのConnect項目に投票し、コメントしてください:http://connect.microsoft.com/SQLServer/feedback/details/728969/feature-request-ordered-set-functions-within-group-clauseとhttp:// connect。 microsoft.com/SQLServer/feedback/details/247118/sql-needs-version-of-mysql-group-concat-function –

+0

+1 ...あなたの答え....また、それらの接続項目に投票しました – Lamak

+0

ありがとう、ありがとうございます私はこのテーマについてのGoogleのテーマの見出しですか? – Lumpi