Oracle SQL-如何;“支点”;一对多
在Oracle12c中,我有一个视图,它需要一点时间来运行。当我添加where子句时,它将只返回一行利息。该行有如下列/值 我需要翻转这个,这样我可以看到每个“集”一行。我需要SQL返回如下内容 我知道我可以为每一个入口集合做一个联合,但是由于视图运行需要一段时间,加上大约有30个不同的集合(我只展示了3个-汽车、船和卡车)Oracle SQL-如何;“支点”;一对多,sql,oracle,Sql,Oracle,在Oracle12c中,我有一个视图,它需要一点时间来运行。当我添加where子句时,它将只返回一行利息。该行有如下列/值 我需要翻转这个,这样我可以看到每个“集”一行。我需要SQL返回如下内容 我知道我可以为每一个入口集合做一个联合,但是由于视图运行需要一段时间,加上大约有30个不同的集合(我只展示了3个-汽车、船和卡车) 有更好的方法吗?我已经查看了PIVOT/UNPIVOT,但我没有看到如何使其工作。我想您正在寻找UNPIVOT WITH TEMP_DATA (ID1, CarPri
有更好的方法吗?我已经查看了PIVOT/UNPIVOT,但我没有看到如何使其工作。我想您正在寻找UNPIVOT
WITH TEMP_DATA (ID1, CarPrice, CarTax, BoatPrice, BoatTax, TruckPrice, TruckTax)
AS (
select 'AAA', 1, 2, 3, 4, 5, 6 from dual )
select TYPE, PRICE, TAX
from temp_data
unpivot
(
(PRICE, TAX)
for TYPE IN
(
(CarPrice, CarTax) as 'CAR',
(BoatPrice, BoatTax) as 'BOAT',
(TruckPrice, TruckTax) as 'TRUCK'
)
)
;
输出:
TYPE PRICE TAX
----- ---------- ----------
CAR 1 2
BOAT 3 4
TRUCK 5 6
我想你在找UNPIVOT
WITH TEMP_DATA (ID1, CarPrice, CarTax, BoatPrice, BoatTax, TruckPrice, TruckTax)
AS (
select 'AAA', 1, 2, 3, 4, 5, 6 from dual )
select TYPE, PRICE, TAX
from temp_data
unpivot
(
(PRICE, TAX)
for TYPE IN
(
(CarPrice, CarTax) as 'CAR',
(BoatPrice, BoatTax) as 'BOAT',
(TruckPrice, TruckTax) as 'TRUCK'
)
)
;
输出:
TYPE PRICE TAX
----- ---------- ----------
CAR 1 2
BOAT 3 4
TRUCK 5 6
那正是我要找的!谢谢。@user1009073没问题……仅供参考,注意到我刚才更新了一个不必要的子查询。仍然会得到同样的结果。这正是我想要的!谢谢。@user1009073没问题……仅供参考,注意到我刚才更新了一个不必要的子查询。仍然会得到同样的结果。