Как преобразовать столбец в строку? - PullRequest
3 голосов
/ 03 ноября 2011

Мне нужна ваша помощь. У меня динамический запрос, который возвращает данные в этом формате.

Item1  Item1Remarks  Item2  Item2Remarks  Item3  Item3Remarks  Item4  tem4Remarks
==
2      bla bla       5      bla bla       1      bla bla       4      bla bla

Имя элемента может быть различным (может изменяться, поскольку данные динамические).Столбцы элементов содержат количество элементов.

Теперь мне нужны данные в этом формате.

Item    Qty Remarks
==
Item1   2   bla bla
Item2   5   bla bla
Item3   1   bla bla
Item4   4   bla bla

Ответы [ 2 ]

5 голосов
/ 03 ноября 2011
4 голосов
/ 03 ноября 2011

Чтобы конкретно ответить на ваш вопрос, вам в основном нужен сложный многостолбцовый запрос UNPIVOT, такой как:

SELECT Item, Qty, Remarks
FROM ItemDetail
UNPIVOT -- This UNPIVOT gives us the Item column
(  
  Qty FOR Item IN (Item1, Item2, Item3, Item4)  
) TheItem  
UNPIVOT -- This UNPIVOT gives us the corresponding Remarks column
(  
  Remarks FOR ItemRemarks IN (Item1Remarks, Item2Remarks, 
                              Item3Remarks, Item4Remarks)  
) Ct  
WHERE RIGHT(Item,1)=SUBSTRING(ItemRemarks,5,1) -- Match items with their remarks

Вы не указали имя своей таблицы, поэтому замените ItemDetail ее фактическим именем.

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