Use sum to convert rows and columns. The original table www.2cto.com is expected to display each IDX_CODE column in the table in the query results. The result table is as follows: create table test (IDX_DATA_ID NUMBER (12) not null, org_no NUMBER (2), org_name VARCHAR2 (6), idx_code VARCHAR2 (12), stat_cycle NUMBER (6 ), data_value NUMBER (12), CHAIN_VALUE NUMBER (1300025889) insert data: www.2cto.com insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (, 1, 'beijing', 'zh001360', 201210,100 000, 0.00); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025890, 1, 'beijing', 'zh001360', 201211,110 000, 1.10); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025891, 1, 'beijing', 'zh001360', 201212,900 00, 0.82); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025892, 1, 'beijing', 'zh001359', 201210,200 000, 0.00); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025893, 1, 'beijing', 'zh001359', 201211,210 000, 1.05); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025894, 1, 'beijing', 'zh001359', 201212,190 000, 0.90); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025895, 2, 'shanghai', 'zh001360', 201210,100 000, 0.00); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025896, 2, 'shanghai', 'zh001360', 201211,110 000, 1.10); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025897, 2, 'shanghai', 'zh001360', 201212,900 00, 0.82); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025898, 2, 'shanghai', 'zh001359', 201210,200 000, 0.00); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025899, 2, 'shanghai', 'zh001359', 201211,210 000, 1.05); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025900, 2, 'shanghai', 'zh001359', 201212,190 000, 0.90); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025901, 3, 'tianjin ', 'zh001360', 201210,100 000, 0.00); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025902, 3, 'tianjin ', 'zh001360', 201211,110 000, 1.10); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025903, 3, 'tianjin ', 'zh001360', 201212,900 00, 0.82); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025904, 3, 'tianjin ', 'zh001359', 201210,200 000, 0.00); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025905, 3, 'tianjin ', 'zh001359', 201211,210 000, 1.05); insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE) values (1300025906, 3, 'tianjin ', 'zh001359', 201212,190 000, 0.90); the query statement to achieve the expected results is as follows: www.2cto.com SELECT T1.ORG _ NAME, T1.STAT _ CYCLE, SUM (case when T1.IDX _ CODE = 'zh001359' THEN T1.DATA _ value end) AS DV1, SUM (case when T1.IDX _ CODE = 'zh001360' THEN T1.DATA _ value end) AS DV2, CAST (SUM (case when T1.IDX _ CODE = 'zh001359' THEN T1.CHAIN _ value end) as number (6, 2 )) AS DV3 from test T1 WHERE T1.IDX _ code in ('zh001359', 'zh001360 ') AND T1.STAT _ CYCLE> = '20160301' AND T1.STAT _ CYCLE <= '20160301' AND T1.ORG _ NO = '1' group by T1.STAT _ CYCLE, T1.ORG _ name order by STAT_CYCLE DESC;