반응형
오라클 피벗 쿼리는 열 이름 주위에 따옴표가 있는 열을 제공합니다.뭐라고?
오라클에서 피벗을 사용하려고 하는데 이상한 결과가 나옵니다.설정해야 하는 옵션일 수도 있지만 Oracle/SQL에 대해 알고 있는 내용을 이 설명 상자에 입력할 수 있습니다.
다음은 제 질문의 예입니다.
with testdata as
(
select 'Fred' First_Name, 10 Items from dual
union
select 'John' First_Name, 5 Items from dual
union
select 'Jane' First_Name, 12 Items from dual
union
select 'Fred' First_Name, 15 Items from dual
)
select * from testdata
pivot (
sum(Items)
for First_Name
in ('Fred','John','Jane')
결과는 예상했던 대로 나옵니다. 단, 열 이름 주위에 따옴표가 있습니다(Toad의 사진 - Excel로 내보내면 따옴표가 Excel로 전달됩니다).
열 이름 주위의 작은 따옴표를 제거하려면 어떻게 해야 합니까?"in" 절에서 제거하려고 했는데 오류가 발생했습니다.
in (Fred,John,Jane)
저도 싱글따옴표를 더블따옴표로 대체하려고 했는데 같은 오류가 발생했습니다.쿼리를 실행하기 전에 설정/해제해야 하는 Oracle 옵션인지 Toad 옵션인지 모르겠습니다.
의 새 열에 별칭을 제공할 수 있습니다.pivot
명세서의IN
절(NB: 이것은 표준 where 절과 다릅니다.IN()
별칭을 허용하지 않습니다.)
with testdata as
(
select 'Fred' First_Name, 10 Items from dual
union
select 'John' First_Name, 5 Items from dual
union
select 'Jane' First_Name, 12 Items from dual
union
select 'Fred' First_Name, 15 Items from dual
)
select * from testdata
pivot (
sum(Items)
for First_Name
in ('Fred' as fred,'John' as john,'Jane' as jane)
)
또한 여러 절이 있는 경우에 필요한 집계 절에 대해서도 마찬가지입니다.
with testdata as
(
select 'Fred' First_Name, 10 Items from dual
union
select 'John' First_Name, 5 Items from dual
union
select 'Jane' First_Name, 12 Items from dual
union
select 'Fred' First_Name, 15 Items from dual
)
select * from testdata
pivot (
sum(Items) itmsum,
count(Items) itmcnt
for First_Name
in ('Fred' as fred,'John' as john,'Jane' as jane)
)
돌아온다
FRED_ITMSUM FRED_ITMCNT JOHN_ITMSUM JOHN_ITMCNT JANE_ITMSUM JANE_ITMCNT
----------- ----------- ----------- ----------- ----------- -----------
25 2 5 1 12 1
물론 풀 서클로 이동하여 표준 오라클 별칭을 사용하고 따옴표를 다시 넣는 것을 포함하여 원하는 이름으로 이름을 바꿀 수 있습니다.
with testdata as
(
select 'Fred' First_Name, 10 Items from dual
union
select 'John' First_Name, 5 Items from dual
union
select 'Jane' First_Name, 12 Items from dual
union
select 'Fred' First_Name, 15 Items from dual
)
select FRED_ITMSUM "Fred's Sum", FRED_ITMCNT "Fred's Count"
, JOHN_ITMSUM "John's Sum", JOHN_ITMCNT "John's Count"
, JANE_ITMSUM "Janes's Sum", JANE_ITMCNT "Janes's Count"
from testdata
pivot (
sum(Items) itmsum,
count(Items) itmcnt
for First_Name
in ('Fred' as fred,'John' as john,'Jane' as jane)
)
기브즈
Fred's Sum Fred's Count John's Sum John's Count Janes's Sum Janes's Count
---------- ------------ ---------- ------------ ----------- -------------
25 2 5 1 12 1
언급URL : https://stackoverflow.com/questions/22103060/oracle-pivot-query-gives-columns-with-quotes-around-the-column-names-what
반응형
'itsource' 카테고리의 다른 글
Oracle에서 SQL 쿼리의 결과 연결 (0) | 2023.07.01 |
---|---|
Linkq는 먼저 특정 번호로 주문한 다음 모든 나머지 순서를 순서대로 표시합니다. (0) | 2023.07.01 |
SQL Server에서 OPTION(MAXDOP 1)을 사용하는 목적은 무엇입니까? (0) | 2023.07.01 |
Mongoose 스키마 형식 변경 (0) | 2023.07.01 |
레일의 ERB에서 <%, <%=, <%# 및 -%>의 차이는 무엇입니까? (0) | 2023.07.01 |