SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
175 个问题
这是测试表和查询语句:
DECLARE @Table TABLE(ID INT,Val1 VARCHAR(10),Val2 VARCHAR(10),Val3 VARCHAR(10));
INSERT INTO @Table
VALUES (1,'aa','bb','cc'),
(2,'dd','ee','ff');
--SELECT * FROM @Table
SELECT *
FROM @Table
UNPIVOT(ID FOR VAL IN(Val1,Val2,Val3))U
想要实现列转行,在网上查询到UNPIVOT函数,但是出现如下报错信息:在 UNPIVOT 运算符中指定的列名 "ID" 与 UNPIVOT 参数中现有的列名冲突,该怎么修改?
你好,
试试这样修改:
SELECT ID,VAL
FROM @Table
UNPIVOT(VAL FOR Columns IN(Val1,Val2,Val3))U
或者你也可以用UNION ALL,像这样:
SELECT ID,Val1 FROM @Table
UNION ALL
SELECT ID,Val2 FROM @Table
UNION ALL
SELECT ID,Val3 FROM @Table
ORDER BY ID
如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。