我有一张这样的表,
我已使用代码
将其转到以下内容select *
from
(
select *
from table1
) a
pivot
(
avg(col3)
for col2 in ([a],[b],[c],[d])
) as pv;
如何从数据透视表pv创建新表?我已经尝试过select * into newTable,但它似乎不起作用。
答案 0 :(得分:1)
您可以使用INTO
SELECT * INTO #TAB
FROM
(
SELECT *
FROM TABLE1
) A
PIVOT
(
AVG(COL3)
FOR COL2 IN ([A],[B],[C],[D])
) AS PV;
由Chanukya提供架构。 (为我工作)
CREATE TABLE #D
(
COL1 INT,
COL2 VARCHAR(10),
COL3 INT
)
INSERT INTO #D VALUES
(1,'A',11),
(2,'B',22),
(3,'C',33),
(4,'D',44)
SELECT * INTO #PIVOT_RESULT
FROM (
SELECT COL1, COL2, COL3 FROM #D
)AS A
PIVOT
(
AVG(COL3)
FOR COL2 IN ([A],[B],[C],[D])
) AS PV;
SELECT * FROM #PIVOT_RESULT
答案 1 :(得分:0)
试试这个:
确保select中的列等于新表中的列。
INSERT INTO NewTable
select *
from
(
select *
from table1
) a
pivot
(
avg(col3)
for col2 in ([a],[b],[c],[d])
) as pv;
如果您不想要实际的表,您希望在整个查询过程中访问此数据,那么您可以使用临时表#TempTbl
,然后从#TempTbl
访问数据。
INSERT INTO #TempTbl
select *
from
(
select *
from table1
) a
pivot
(
avg(col3)
for col2 in ([a],[b],[c],[d])
) as pv;
答案 2 :(得分:0)
最简单的方法是使用"进入"正如你原先猜到的那样。由于您没有共享您的代码,因此我们不知道您可能做错了什么。只需将"添加到tableName"你自己的转轴代码:
select * into myPivotedTable
from
(
select *
from table1
) a
pivot
(
avg(col3)
for col2 in ([a],[b],[c],[d])
) as pv;
PS:我假设你有权创建一个表。