Iは以下のように結果セットを有する、は、1行に2行を結合 - Sybaseの
id fname lname
11 Tom Jerry
11 Tom Harry
私は1行に行の両方をマージすることができ、及びLNAME値がカンマ区切りとマージ方法があります。以下のように、
11 Tom Jerry,Harry
乾杯!
Iは以下のように結果セットを有する、は、1行に2行を結合 - Sybaseの
id fname lname
11 Tom Jerry
11 Tom Harry
私は1行に行の両方をマージすることができ、及びLNAME値がカンマ区切りとマージ方法があります。以下のように、
11 Tom Jerry,Harry
乾杯!
これを行うには、StuffといくつかのXMLが機能します。編集:SYBASEでテストが、それをやってみると
テストデータ
CREATE TABLE #TestData (id int, fname varchar(20), lname varchar(20))
INSERT INTO #TestData
VALUES
(11,'Tom','Jerry')
,(11,'Tom','Harry')
クエリ
SELECT
a.id
,a.fname
,STUFF((SELECT ',' + b.lname
FROM #TestData b
WHERE b.id = a.id
FOR XML PATH('')), 1, 1, '') lname
FROM #TestData a
GROUP BY a.id, a.fname
結果に
id fname lname
11 Tom Jerry,Harry
の手順を参照されない:(擬似コード)
を1 - 基本テーブルを取得するid、fnameで順番にデータ
2 - カーソルの各行を処理し、id以下に論理以下で使用すると、fnameの値は変更された後も同じになり、新しい値のセット(id、fname )カンマ区切りの姓で追加されました
BEGIN
SET @List = @List + ',' + Cast(@lname As varchar(10))
END
'FOR XML PATH'はSybaseで利用できますか? –
わからない、私は元の質問のその部分を逃した。これはSQL Server上で試された方法ですが、私は恐れているsybase devシステムにアクセスできません。 –
とにかく努力してくれてありがとう。同じことをするGROUP_CONCATもsybaseでは使用できません。悲しい!! –