2

次のようなテーブルがあるとします。

AAA BBB 123
AAA BBB 456
AAA BBB 789

これら3つを次のように1行に表示するにはどうすればよいですか:

AAA BBB 123-456-789 (区切り文字を使用して複数のセルを 1 つのセルに追加)

乾杯。

4

2 に答える 2

1

これを試してみてください -

クエリ:

DECLARE @temp TABLE
(
      a VARCHAR(10)
    , b VARCHAR(10)
    , c INT
)

INSERT INTO @temp (a, b, c)
VALUES 
    ('AAA', 'BBB', 123),
    ('AAA', 'BBB', 456),
    ('AAA', 'BBB', 789)

SELECT t.a + ' ' + t.b + STUFF((
    SELECT '-' + CAST(c AS VARCHAR(10))
    FROM @temp t2
    WHERE t2.a = t.a
        AND t2.b = t.b
    FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, ' ')
FROM (
    SELECT DISTINCT a, b 
    FROM @temp
) t

出力:

AAA BBB 123-456-789
于 2013-06-11T10:50:27.020 に答える
0

ここにある答えを使用して:

WITH X AS 
(
    SELECT 'AAA' AS A, 'BBB' AS B, 123 AS C
    UNION
    SELECT 'AAA' AS A, 'BBB' AS B, 456 AS C
    UNION
    SELECT 'AAA' AS A, 'BBB' AS B, 789 AS C
)
SELECT DISTINCT
    X.A,
    X.B,
    STUFF((SELECT '-' + CAST(C AS VARCHAR(3)) FROM X FOR XML PATH ('')), 1, 1, '')
FROM
    X
于 2013-06-11T10:51:06.147 に答える