我有一个带有列名的数据表:

period, Truck, Car, Boat

其中 Columns 包含数值,而 period 列是具有 1 到 48 的标识列,因此有 48 行。

我想将此表转换为一种格式,其中我有一个名称列和一个值列以及句点列,例如。
period, NameOfVehicle, Value

我想创建原始表的 View 来执行此操作?如何选择列名并将它们和该列中的正确值放入 NameOfVehicle 和 Value 列中?

最佳答案

如果您有固定的列,您可以随时执行以下操作:

SELECT period, 'Truck' AS NameOfVehicle, Truck AS Value FROM vehicle
UNION ALL
SELECT period, 'Car', Car FROM vehicle
UNION ALL
SELECT period, 'Boat', Boat FROM vehicle

如果列是动态的或未知的,那么它会有点困难,并且将依赖于供应商特定的功能来查询架构和动态 SQL 语句。

关于SQL选择列名称作为值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1252580/

10-11 03:37