Строки таблицы с определяющим параметром в каждой строке SQL SERVER 2008 в одну строку - PullRequest
4 голосов
/ 29 апреля 2010

Извините - мой вопрос, вероятно, неуместен в моей попытке сделать это.

У меня есть следующее (ну, похоже) в таблице в CMS

pageID    key            value    

201       title          Page 201's title
201       description    This is 201
201       author         Dave
301       title          Page 301's title
301       description    This is 301
301       author         Bob         

Как вы, наверное, догадались, мне нужен запрос, который выдаст:

pageID   title              description        author

201      Page 201's title   This is page 201   Dave
301      Page 301's title   This is page 301   Bob

Если бы кто-нибудь мог помочь, я был бы бесконечно благодарен - я знаю, что это "пожалуйста, пришлите мне код", но я абсолютно застрял.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2010
Select PageId
    , Min( Case When key = 'title' Then Value End ) As Title
    , Min( Case When key = 'description' Then Value End ) As Description
    , Min( Case When key = 'author' Then Value End ) As Author
From Table
Group By PageId
1 голос
/ 29 апреля 2010

Быстрый взлом может быть

select a.pageID, a.value as Title, b.value as Description, c.value as Author from Table a
    left outer join Table b on a.pageID = b.pageID and b.key = 'description'
    left outer join Table c on a.pageID = c.pageID and c.key = 'author'
where a.key = 'title'

Возможно, это не лучшее решение, но оно может работать для вас.

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