在表中我有列ID,CAR_1,CAR_2,CAR_3...
从 Dual 中选择 1 作为 ID、100 作为 CAR_1、200 作为 CAR_2、300 作为 CAR_3;
如何获取 CAR_DAY 列,例如。对于 CAR_1 = 1,CAR_2 = 2 等等..
如何得到这个:
ID CAR_ID CAR_DAY
1 100 1
1 200 2
1 300 3
我的演示但不起作用:
SELECT
ID,
CAR_ID,
CAR_DAY,
FROM
CARS
UNPIVOT
(
(CAR_ID, CAR_DAY) FOR COL IN
((CAR_1, 1), (CAR_2, 2), (CAR_3, 3))
)
这里如何使用
unpivot
:
SELECT ID, CAR_DAY, REPLACE(CAR_DAY, 'CAR_', '') AS CAR_ID
FROM (
SELECT 1 as ID, 100 as CAR_1, 200 as CAR_2, 300 as CAR_3
FROM dual
)
unpivot
( CAR_ID FOR CAR_DAY IN (CAR_1, CAR_2, CAR_3) );