【发布时间】:2022-01-14 10:51:49
【问题描述】:
我有一个反透视查询,从一个表中提取时效果很好:
WITH test
(SELECT field1,field2,field3,field4
FROM Table1
WHERE id = 1234)
SELECT * FROM test
UNPIVOT
(Value FOR Field IN (field1 as 'Field 1', field2 as 'Field 2', field3 as 'Field 3', field4 as 'Field 4'))
将数据显示为:
Field 1 Value1
Field 2 Value2
Field 3 Value3
Field 4 Value4
现在我已将查询更改为 pull
WITH test
(SELECT t.field1,t.field2,t.field3,t.field4, x.qty1, x.qty2, (x.qty1 + x.qty2) qty3
FROM Table1 t
,(select id, field1, Function1(field1, field3) qty1, Function2(field1, field3) qty2 FROM Table1) x
WHERE t.id = x.id
AND id = 1234)
SELECT * FROM test
UNPIVOT
(Value FOR Field IN (field1 as 'Field 1',
field2 as 'Field 2',
field3 as 'Field 3',
field4 as 'Field 4', <-- ORA-01790: expression must have same datatype as corresponding expression
qty1 as 'Quantity 1',
qty2 as 'Quantity 2',
qty3 as 'Total'))
不知道为什么会发生这种情况,我该如何解决
【问题讨论】: