Транспонирование столбцов в таблицы - PullRequest
3 голосов
/ 15 апреля 2011

Это, наверное, очень легко, но я не могу обойти это. SQL Server 2008. У меня есть следующее:

SELECT userId, accesslevel
FROM accesscontrol.dbo.BADGELINK

результаты, которые я получаю

user id         accesslevel
72                 1
72                 5
72                 9
89                 1
89                 4
91                 9
91                 11

что я хотел бы это

user id       acesslevels
72               1,5,9
89               1,4
91               9,11

Есть какие-нибудь идеи?

Ответы [ 2 ]

3 голосов
/ 15 апреля 2011

В SQL Server вы можете сделать что-то вроде:

Select B.user_id
    , Stuff(
        (
        Select ',' + B1.AccessLevel
        From AccessControl.dbo.BadgeLink As B1
        Where B1.user_id = B.user_id
        Group By B1.AccessLevel
        For Xml Path('')
        ), 1, 2, '') As AccessLevels
From AccessControl.dbo.BadgeLink As B
Group By B.user_id
2 голосов
/ 15 апреля 2011

Здесь есть совершенно блестящая статья на эту тему: http://www.simple -talk.com / sql / t-sql-программирования / concatingating-row-values-in-transact-sql / Он живет в моих закладках, и я часто ссылаюсь на это. Если это не полностью отвечает на ваш вопрос, пожалуйста, дайте мне знать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...