小编cle*_*mo3的帖子

Oracle SQL Developer:如何使用PIVOT函数将行转置为列

我正在尝试创建一个查询,使用PIVOT函数将行转换为列.

这是contact我想要转换成行的表:

   PARTYID CONTACTTEXT  CONTACTTYPECD
---------- ------------ -------------
       100 0354441010               1
       100 0355551010               2
       100 0428105789               3
       100 abc@home.com             4
Run Code Online (Sandbox Code Playgroud)

我的预期结果:

   PARTYID PHONE        FAX          MOBILE       EMAIL      
---------- ------------ ------------ ------------ ------------
       100 0354441010   0355551010   0428105789   abc@home.com
Run Code Online (Sandbox Code Playgroud)

我的查询:

SELECT * FROM 
  ( 
    SELECT partyId, contacttext, contacttypecd 
    FROM CONTACT 
    WHERE partyId = 100; 
  ) 
  PIVOT ( 
    MAX(contacttext) 
  FOR contacttypecd in (1 Phone, 2 Fax, 3 Mobile, 4 Email)); 
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

Error starting at line 9 in command: 
FOR contacttypecd in (1 …
Run Code Online (Sandbox Code Playgroud)

sql oracle pivot oracle9i

6
推荐指数
1
解决办法
6万
查看次数

标签 统计

oracle ×1

oracle9i ×1

pivot ×1

sql ×1