1

Ruleというテーブルがあります。

RuleId    Name
1          A1
2          A2
3          A3
.
.
.

今、私はすべての名前を単一の結果として欲しいです。

のようかもしれません@allnames = A1,A2,A3

ループを使用せずにこれに対するクエリを作成する方法を誰かがアドバイスできますか?

前もって感謝します...

4

3 に答える 3

3

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

DECLARE @temp TABLE ([RuleId] INT, Name CHAR(2))
INSERT INTO @temp([RuleId], Name)
VALUES
    (1, 'A1'),
    (2, 'A2'),
    (3, 'A3')

DECLARE @all_names NVARCHAR(MAX)

SELECT @all_names = STUFF((
    SELECT DISTINCT ',' + Name
    FROM @temp
    --ORDER BY Name
    FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')

SELECT @all_names

出力 -

---------------
A1,A2,A3
于 2013-09-02T08:30:21.403 に答える