我有下面的表结构列具有多个逆透视或对于
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