2014-01-06 2 views
0

У меня есть хранимая процедура, которая всегда возвращает одну строку. Я хочу преобразовать каждое имя column_ и его соответствующее значение в строку. Пример -Поставить результаты хранимой процедуры?

ID | Name | Address 
----------------------- 
1 | Jim | Home 

должен стать -

ID  | 1 
--------------------- 
Name | Jim 
Address | Home 

Как мне это сделать?

+1

Зачем вам нужно поворачиваться в SQL? Поворот в слое приложения или отчета обычно намного проще. –

+0

@DStanley - Я не знаю, как поворот упрощает его слой приложения/отчета. Я мог бы свернуть его на C#, но пока не знаю, как это сделать. – Steam

+0

Большинство решений для отчетности позволяют динамически поворачивать (добавление столбцов динамически основано на значениях строк). Примером может служить элемент управления «Матрица» в SSRS. Многие библиотеки управления пользователями имеют сетки, которые могут динамически поворачиваться. Для разворота SQL требуются статические имена столбцов (по модулю с использованием динамического SQL), а синтаксис неинтуитивный. –

ответ

1

Вам нужно будет вставить значения из хранимой процедуры в (временную) таблицу, а затем оттуда оттуда. Psedocode ниже:

CREATE TABLE #t (ID int, Name varchar(100), Address varchar(100)) 

INSERT INTO #t 
EXEC stored_proc 

SELECT ID = 'Name', [1] = Name 
FROM #t 
UNION ALL 
SELECT ID = 'Address', [1] = Address 
FROM #t 

DROP TABLE #t 
Смежные вопросы