将单行及其标题转换为两列[重复]

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,答案可以解决您的问题。

【讨论】:

以上是关于将单行及其标题转换为两列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将单个表格行转换为两列?

根据条件将一列转换为两列

使用 r 将一列拆分为两列 [重复]

将 n 列一起发生的事件转换为两列成对的事件

将有序列表拆分为两列

Magento:将产品页面中的产品选项显示为两列中的列表元素