我有一个Audit类的表,我们根据其他表中的某些触发器存储一些信息。
ID,Changed_Column,OldValue,NewValue将可用。现在有可能使用相同的ID,因为更改后的列将具有不同的值,所以我希望将其重复3-4次,我想将它们合并到单行中并获取数据。例如,
ID ChangedColumn OldValue NewValue
1 Name Bob Roy
1 Age 26 28
1 Section B C
现在,当我们选择它时,它将把所有行显示为separte,但是我想自行加入并通过基于ID值的合并来仅检索一条记录
预期的结果是这样的,
ID Name Age Section ChangedColumns
1 was :Bob now : Roy was:26 now:28 Was:B now:C Name, Age, Section
可以对列名称进行分组以使用listagg
功能。将行转换为列使用Pivot
功能。
with tab as(
select 1 as id, 'Name' as col, 'Bob' as OldValue , 'Roy' as NewValue from dual union all
select 1 as id, 'Age', '26', '28' as NewValue from dual union all
select 1 as id, 'Section', 'B', 'C' as NewValue from dual
)
select *
from (
select id
,t.col as col
,max('was: '|| t.OldValue || ' now: ' || t.NewValue) as val
,listagg(t.col,',') within group(order by t.id) OVER (PARTITION BY null) as ChangedColumn
from tab t
group by id,t.col
)
pivot ( max(val) for col in('Name','Age','Section'));
问题内容: 这个问题已经在这里有了答案 : Python何时为相同的字符串分配新的内存? (5个答案) 7年前关闭。 我遇到了这种奇怪的行为,这种行为仅在交互式Python会话中发生,而在编写脚本并执行时却没有。 在Python中,字符串是不可变的数据类型,因此: 现在,奇怪的部分: 我已经看到,字符串中包含空格会导致此行为。如果将其放在脚本中并运行,则在两种情况下结果均为True。 有人对此有任
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 如何从PHP的MySql响应中“回显”“资源ID#6”? 我是php和SQL的新手,我正在尝试使php页面列出表中的枚举数。我正在使用此代码,但它返回资源ID#2: 问题答案: 因为执行时会获得mysql资源。 使用类似的方法来获取下一行。它返回一个以列名作为索引的数组。就您而言,可能是。 这是您的代码段的修复程序和一些小改进:
问题内容: 我正在Oracle中进行测试,并在表中填充了一些示例数据,但是在此过程中,我不小心加载了重复的记录,因此现在无法使用某些列创建主键。 如何删除所有重复的行并仅保留其中之一? 问题答案: 使用伪列。 其中,和组成每个记录的标识键。您可能会列出所有列。
我想在< code>JSON中返回保存在< code>joblib中的机器学习模型的新数据预测(new_data.csv)。
问题内容: 我有一张像这样的桌子: 想要将其转换为: 在oracle中不使用此联合: 问题答案: 您可以尝试使用unpivot sqlfiddle:https ://dbfiddle.uk/ ? rdbms = oracle_11.2 & fiddle = b2105e1010b332ce5b702eba7bfa7f2d
好吧,问题不是关于如何返回ID,而是更像是如何跳过它...我有一种情况,我使用last_insert_id()获取最后插入行的id,但如果没有插入行,我想得到一个零。问题如下: < li >我插入...更新一些记录:由于这些行是新插入的,所以返回所有id < li >然后我重复该过程:这次不返回id。耶!这正是我想要的 < li >我更改了一个列值并重复该过程:但现在返回的是我更改了列值的行的ID