IsaiSelvan Ответов: 1

Как преобразовать строку в столбец в SQL server 2008


Как сделать результат таблицы Для ниже в sql server?.


Колонка Col1 Col2 Col3 Col4 Col5
А 6.05 7.15 9.5 8.5 6.5


Значения Столбцов
Col1 6.05
Столбец col2 7.15
Кол3 9.5
Col4 8.5
Col5 6.5

Что я уже пробовал:

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

1 Ответов

Рейтинг:
7

CHill60

Попробуйте прочитать это:
Простой способ использования Pivot в SQL-запросе[^]
Кстати, это срочно только для вас, а не для нас, и гораздо проще помочь людям, которые публикуют код, с которым у них возникли проблемы

[РЕДАКТИРОВАТЬ]

Из вашего вопроса не ясно, пытаетесь ли вы перейти от одной строки ко многим или от многих строк к одной строке. Вот почему я попросил посмотреть ваш вопрос, так как это помогло бы мне лучше понять ваш вопрос.

Однако вот несколько простых примеров, которые вы можете использовать, чтобы решить свою проблему...

1. у вас есть таблица со многими строками, и вы хотите получить из нее одну строку.

CREATE TABLE #demo1 ( c varchar(10), f float )

insert into #demo1 (c,f) values
('Col1' ,6.05),('Col2' ,7.15), 
('Col3' ,9.5 ),('Col4' ,8.5 ),('Col5' ,6.5)
С помощью шарнирной...
SELECT * FROM 
(SELECT c, f FROM #demo1) as s
PIVOT (MAX(f) FOR c IN (Col1,Col2,Col3,Col4,Col5)) AS p
Результаты:
6.05	7.15	9.5	8.5	6.5
2. у вас есть таблица с одной строкой, и вы хотите получить из нее несколько строк.
CREATE TABLE #demo2
(
	letter varchar(1),
	Col1 float,
	Col2 float, 
	Col3 float,
	Col4 float,
	Col5 float
)
insert into #demo2 (letter, Col1,Col2,Col3,Col4,Col5) values
('A',6.05, 7.15, 9.5, 8.5, 6.5)
Есть два метода, которые вы можете использовать

грубая сила"
SELECT 'Col1' AS [Column], Col1 FROM #demo2
UNION
SELECT 'Col2' AS [Column], Col2 FROM #demo2
UNION
SELECT 'Col3' AS [Column], Col3 FROM #demo2
UNION
SELECT 'Col4' AS [Column], Col4 FROM #demo2
UNION
SELECT 'Col5' AS [Column], Col5 FROM #demo2
ORDER BY [Column]
или B) преобразование
SELECT c, f FROM
(SELECT Col1,Col2,Col3,Col4,Col5 FROM #demo2 ) s
UNPIVOT
(f FOR c IN (Col1,Col2,Col3,Col4,Col5)) AS upvt
ORDER BY c
Оба дают один и тот же результат
Col1	6.05
Col2	7.15
Col3	9.5
Col4	8.5
Col5	6.5


IsaiSelvan

Я пытаюсь сделать это таким образом, но получаю ошибку. Не могли бы вы предоставить запрос для вышеупомянутого формата таблицы упоминания

CHill60

Как я уже сказал ... "гораздо проще помочь людям, которые публикуют код, с которым у них возникли проблемы". Поделитесь кодом, с которым у вас возникли проблемы, и мы, надеюсь, сможем найти эту проблему для вас

IsaiSelvan

хорошо, спасибо. Я постараюсь