Er.RajeshKumar Ответов: 1

Преобразование столбца в строку с заголовком В SQL


у меня есть этот тип данных в таблице.
BR	DL	AP	
 150	21	5


Примечание: мне нужны такие данные

Scode  Total
br      150
dl      21
AP      5


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

WITH CTE
AS
  
  (
  SELECT * FROM (
  SELECT top 1 AP,BR  FROM A) T
  UNPIVOT ( Value FOR N IN (AP,BR))P
  )
 SELECT Value AS Total FROM CTE

1 Ответов

Рейтинг:
11

Maciej Los

Пожалуйста, ознакомьтесь с документацией: Использование PIVOT и UNPIVOT - SQL Server | Microsoft Docs[^]

Пример:

DECLARE @tmp TABLE(BR INT, DL INT, AP INT)

INSERT INTO @tmp(BR, DL, AP)
VALUES(150, 21, 5)

SELECT Scode, Total
FROM (
	SELECT *
	FROM @tmp
) pvt
UNPIVOT(Total FOR Scode IN (BR, DL, AP)) AS unpvt


Результат:
Scode	Total
BR	150
DL	21
AP	5


Er.RajeshKumar

Вставить в @tmp(BR, DL, AP)
Значения(150, 21, 5)

ваш запрос работает, но значение 150,21,5 находится в строке How can insert in @tmp

Maciej Los

Что?
[РЕДАКТИРОВАТЬ]
Вы получаете данные из таблицы а:

SELECT top 1 AP,BR  FROM A

Я извлекаю данные из временной таблицы (хранящейся в переменной):
SELECT * FROM @tmp

Это единственное отличие.
Все, что вам нужно сделать, это заменить @tmp с A (имя вашей таблицы).

MadMyche

Вы просмотрели код и запустили его? Вы сравнивали результаты с тем, что хотели?
Я так и сделал, и я бегу SELECT * FROM @tmp и похоже это то о чем ты просил

Maciej Los

Спасибо!
Это помогло мне понять, что говорит ОП...

MadMyche

Добро пожаловать. я стараюсь делать

MadMyche

+5

Maciej Los

Спасибо.

Er.RajeshKumar

Спасибо, что он работает .

Maciej Los

Всегда пожалуйста.