我有下面的表結構列具有多個逆透視或對於
CREATE TABLE test_unpivot
(
prod_id NUMBER,
prod_name_reuse VARCHAR2 (1),
prod_cat_reuse VARCHAR2 (1),
prod_name_transfer VARCHAR2 (1),
prod_cat_transfer VARCHAR2 (1),
remarks VARCHAR2 (10)
);
我使用了unpivot作爲
SELECT prod_id, value1, col1
FROM test_unpivot2 UNPIVOT (value1
FOR col1
IN (prod_name_reuse, prod_cat_reuse))
WHERE prod_id = 120
,並給出了結果
+---------+--------+-----------------+
| PROD_ID | VALUE1 | COL1 |
+---------+--------+-----------------+
| 120 | Y | PROD_NAME_REUSE |
| 120 | N | PROD_CAT_REUSE |
+---------+--------+-----------------+
我的問題是使用UNPIVOT,是否有可能實現以下結果? 即prod_name_transfer是另一列,應顯示爲value2。 UNPIVOT是否支持多個FOR..IN語句?
+---------+--------+-----------------+--------+---------------------+
| PROD_ID | VALUE1 | COL1 |VALUE2 | COL2 |
+---------+--------+-----------------+--------+---------------------+
| 120 | Y | PROD_NAME_REUSE | Y | PROD_NAME_TRANSFER |
| 120 | N | PROD_CAT_REUSE | N | PROD_NAME_TRANSFER |
+---------+--------+-----------------+------------------------------+
我實際的表有許多記錄周圍54列。
表結構
CREATE TABLE test_unpivot2
(
prod_id NUMBER,
prod_name_reuse VARCHAR2 (1),
prod_cat_reuse VARCHAR2 (1),
prod_name_transfer VARCHAR2 (1),
prod_cat_transfer VARCHAR2 (1),
remarks VARCHAR2 (10)
);
表數據
INSERT INTO test_unpivot2
VALUES (120,
'Y',
'N',
'Y',
'N',
'Test1');
INSERT INTO test_unpivot2
VALUES (121,
'Y',
'N',
'Y',
'N',
'Test2');
INSERT INTO test_unpivot2
VALUES (122,
'Y',
'N',
'Y',
'N',
'Test3');
INSERT INTO test_unpivot2
VALUES (123,
'Y',
'N',
'Y',
'N',
'Test4');
COMMIT
你可以添加,讓你的實際/預期產出的問題示例數據(而不是在場外鏈接)? – MT0
@ MT0我在問題中包含了表結構和數據。 – user75ponic