次のようなテーブルがあるとします。
AAA BBB 123
AAA BBB 456
AAA BBB 789
これら3つを次のように1行に表示するにはどうすればよいですか:
AAA BBB 123-456-789 (区切り文字を使用して複数のセルを 1 つのセルに追加)
乾杯。
次のようなテーブルがあるとします。
AAA BBB 123
AAA BBB 456
AAA BBB 789
これら3つを次のように1行に表示するにはどうすればよいですか:
AAA BBB 123-456-789 (区切り文字を使用して複数のセルを 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
ここにある答えを使用して:
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