SQL中将列名转换为行值的操作是使用UNPIVOT命令,将一个列名行值转换为列名的操作则是使用PIVOT命令。
例子:
SELECT Name, Value
FROM (
SELECT Id, Column1, Column2, Column3
FROM TableName
) t
UNPIVOT (
Value FOR Name IN (Column1, Column2, Column3)
) u;
在这个例子中,表TableName中包含Id、Column1、Column2和Column3四个列。使用UNPIVOT命令,将这些列转换为Name和Value两列,其中Name存储原始列名,Value存储原始列的值。
例子:
SELECT *
FROM (
SELECT Name, Value
FROM TableName
) t
PIVOT (
MAX(Value)
FOR Name IN (Column1, Column2, Column3)
) p;
在这个例子中,表TableName中的数据包含Name和Value两列。使用PIVOT命令,将Name列的值转换为Column1、Column2和Column3等列名,并将其对应的Value填充到相应的列中。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云