将单行及其标题转换为两列[重复]
Posted
技术标签:
【中文标题】将单行及其标题转换为两列[重复]【英文标题】:Converting a single row and it's headers to two columns [duplicate] 【发布时间】:2018-11-29 21:05:24 【问题描述】:我有一个定义数据表,我正在使用 On UPDATE 触发器跟踪更改。目前,我通过一系列 IF UPDATE([COLUMNNAME]) 检查跟踪更改。但是,这有一个问题,如果将来添加/删除/重命名列,触发器将失败。
我的想法是旋转 DELETED 和 INSERTED 表,将它们从带有标题的单行转换为两列,一列包含行标题,另一列包含行数据。然后将它们连接到标题中并查找数据部分的不同之处。然后我可以记录 Header、OldData (Deleted) 和 NewData (Inserted) 值。但是,到目前为止,我还无法做到这一点。我搜索了许多 PIVOT 和 UNPIVOT 示例,但似乎都不是我想要的。
举个例子:
ID Name Value1 Value2 Value3 Value4
1 Apple 10 1/1/18 25 10.0
到:
Header Data
ID 1
Name Apple
Value1 10
Value2 1/1/18
Value3 25
Value4 10
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:有时您需要以不同的方式提出问题:如果您查看示例,您实际上希望将列转换为行。如果我在 SO 上搜索“sql 将列转换为行”,第一个结果是 this question,答案可以解决您的问题。
【讨论】:
以上是关于将单行及其标题转换为两列[重复]的主要内容,如果未能解决你的问题,请参考以下文章