반응형
Oracle SQL 개발자:피봇 함수를 사용하여 행을 열로 변환하는 방법
피봇 함수를 사용하여 행을 열로 변환하는 쿼리를 생성하려고 합니다.
여기가.contact
행으로 변환할 테이블:
PARTYID CONTACTTEXT CONTACTTYPECD
---------- ------------ -------------
100 0354441010 1
100 0355551010 2
100 0428105789 3
100 abc@home.com 4
내가 의도한 결과:
PARTYID PHONE FAX MOBILE EMAIL
---------- ------------ ------------ ------------ ------------
100 0354441010 0355551010 0428105789 abc@home.com
내 쿼리:
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));
오류 발생:
Error starting at line 9 in command:
FOR contacttypecd in (1 Phone, 2 Fax, 3 Mobile, 4 Email))
Error report:
Unknown Command
문제가 발생한 이유는 오라클 데이터베이스 버전(Oracle9i)이 피봇(PIOT) 기능을 지원하지 않기 때문입니다.다음은 다른 방법으로 수행하는 방법입니다.
SELECT PartyCD
,MAX(DECODE(t.contacttypecd, 1, t.contacttext)) Phone
,MAX(DECODE(t.contacttypecd, 2, t.contacttext)) Fax
,MAX(DECODE(t.contacttypecd, 3, t.contacttext)) Mobile
,MAX(DECODE(t.contacttypecd, 4, t.contacttext)) Email
FROM
(
SELECT partyid, contacttext, contacttypecd
FROM CONTACT
WHERE partyid = 100
) t
GROUP BY PartyID
설명문에 다음과 같은 길 잃은 세미콜론이 있습니다.
WHERE partyId = 100;
제거하면 다음과 같습니다.
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));
PARTYID PHONE FAX MOBILE EMAIL
---------- ------------ ------------ ------------ ------------
100 0354441010 0355551010 0428105789 abc@home.com
여러 문장으로 간주되고 있습니다. 첫 번째 문장은 종결 괄호가 누락되어 불완전합니다(그래서 ORA-00907을 가져옵니다). 두 번째 문장은 해당 괄호로 시작하여 보고한 오류를 얻으며, 이후 각 행은 동일한 오류를 얻습니다.마지막으로 보고된 오류만 보고 있는 것 같습니다. 일반적으로 첫 번째 오류로 시작하여 해당 오류를 지우고 계속 있는 경우 다음 오류로 이동하는 것이 훨씬 더 도움이 됩니다.
언급URL : https://stackoverflow.com/questions/29945504/oracle-sql-developer-how-to-transpose-rows-to-columns-using-pivot-function
반응형
'programing' 카테고리의 다른 글
Oracle 종속성 없이 Java에서 Oracle Refurser (0) | 2023.10.30 |
---|---|
x86_64의 명령어가 syscall입니까? (0) | 2023.10.30 |
ALTER TABLE 제약 조건 (0) | 2023.10.30 |
MariaDB Galera 클러스터에서 데이터 캡처 변경 (0) | 2023.10.30 |
jdbc 템플릿을 사용한 스프링 부팅 자동 구성데이터 자동배선 문제 (0) | 2023.10.30 |