2012-01-23 16 views
2

私は、SQL Serverデータベース内の情報テーブルと、最初のテーブルに連結したいグループ情報の別のテーブルを持っています。SQL Server:グリッドビューで連結または複数のSELECTクエリ?

TABLE1

1 | 'foo' | 'bar,baz' 

表2

1 | 'bar' 
1 | 'baz' 

私はtable2GROUP BY CONCATを行うことにより、表1にその3番目の列の必要性を交換したいです。唯一の問題は、このプロジェクトの開発を終えた後、私はSQLをOracleに移植する必要があることを意識しているので、おそらくgridviewの1つの列に対して別のSELECTを実行する方が良い方法でしょうか?

ありがとうございます。

答えて

1

XMLに必要な行を変換してnvarcharに戻すことで、簡単にMS SQL連結を行うことができます。例: 連絡先(PK ID)とContactTypes(ContactIDがFKで、1つの連絡先に対して複数の行がある可能性がある)の2つのテーブルがあるとします。すべての型を1行に連結する必要があります。

SELECT c.ContactID, CONVERT(VARCHAR(MAX), /* concatenate all Types to varchar */ 
(
        SELECT ct.ContactTypeDescription+ ', ' 
        FROM ContactTypes ct 
        JOIN Contacts c1 ON ct.ContactID = c1.ContactID 
        FOR XML PATH('') 
      )) AS ContactTypes, * 
      FROM Contacts c 

これは、このような出力を行う必要があります:Oracleのポートについて

 
1 | Type1, Type2, ... | ... 
2 | Type3, Type10, ... | ... 

など

を知らん、OK

+0

...、この情報がお役に立てば幸いです。ここにこれを行うにはトリックがあります私はこれを使って解決策を思いついた。 Oracleのクエリを書き直すと、これが悪夢にならないことを願っています。しかし、ここでの1つの質問は、後続の '、'を削除する方法ですか? – deed02392

+0

もちろん、部分文字列または左(フィールド、レン(フィールド)-2)を使用することができます。 –

+0

ラブリー、感謝トニー:) – deed02392

関連する問題