안녕하십니까, 아래의 표는 끔찍한 개발자가 디자인 한 것입니다.집계없이이 행을 Oracle의 열로 변환하는 방법은 무엇입니까?
이 표에는 USERS 지문과 USERID에 대한 데이터가 들어 있습니다. FINGERID
값은 (1,2,3,4,5,6,7,8,9,10,11,12,13,14)에서 ISLOCKED
및 ISDUPLICATE
값 1
또는 0
... 각이다 FINGERID 이 이미지는 내가 2 주 이후를 수평 방법하지만 행운을 표시 할 BLOB
Name Null Type
----------- -------- -------------
ROW_ID NUMBER
USERID NOT NULL NVARCHAR2(75)
TEMPLATE BLOB
FINGERID NOT NULL NVARCHAR2(20)
ISLOCKED NUMBER(3)
ISDUPLICATE NUMBER(3)
에 저장 한 ... 아래 내가 사용이 시도
Name Null Type
----------------------- -------- -------------
USERID NOT NULL NVARCHAR2(75)
FINGERID_1 NVARCHAR2(20)
FINGERID_1_TEMPLATE BLOB
FINGERID_1_ISLOCKED NUMBER(3)
FINGERID_1_ISDUPLICATE NUMBER(3)
FINGERID_2 NVARCHAR2(20)
FINGERID_2_TEMPLATE BLOB
FINGERID_2_ISLOCKED NUMBER(3)
FINGERID_2_ISDUPLICATE NUMBER(3)
FINGERID_3 NVARCHAR2(20)
FINGERID_3_TEMPLATE BLOB
FINGERID_3_ISLOCKED NUMBER(3)
FINGERID_3_ISDUPLICATE NUMBER(3)
FINGERID_4 NVARCHAR2(20)
FINGERID_4_TEMPLATE BLOB
FINGERID_4_ISLOCKED NUMBER(3)
FINGERID_4_ISDUPLICATE NUMBER(3)
FINGERID_5 NVARCHAR2(20)
FINGERID_5_TEMPLATE BLOB
FINGERID_5_ISLOCKED NUMBER(3)
FINGERID_5_ISDUPLICATE NUMBER(3)
FINGERID_6 NVARCHAR2(20)
FINGERID_6_TEMPLATE BLOB
FINGERID_6_ISLOCKED NUMBER(3)
FINGERID_6_ISDUPLICATE NUMBER(3)
FINGERID_7 NVARCHAR2(20)
FINGERID_7_TEMPLATE BLOB
FINGERID_7_ISLOCKED NUMBER(3)
FINGERID_7_ISDUPLICATE NUMBER(3)
FINGERID_8 NVARCHAR2(20)
FINGERID_8_TEMPLATE BLOB
FINGERID_8_ISLOCKED NUMBER(3)
FINGERID_8_ISDUPLICATE NUMBER(3)
FINGERID_9 NVARCHAR2(20)
FINGERID_9_TEMPLATE BLOB
FINGERID_9_ISLOCKED NUMBER(3)
FINGERID_9_ISDUPLICATE NUMBER(3)
FINGERID_10 NVARCHAR2(20)
FINGERID_10_TEMPLATE BLOB
FINGERID_10_ISLOCKED NUMBER(3)
FINGERID_10_ISDUPLICATE NUMBER(3)
FINGERID_11 NVARCHAR2(20)
FINGERID_11_TEMPLATE BLOB
FINGERID_11_ISLOCKED NUMBER(3)
FINGERID_11_ISDUPLICATE NUMBER(3)
선택 문에 대한 내 원하는 구조 코드는 표시 할 수 없기 때문에 운이 없다. TEMPLATE
(BLOB
), ISLOCKED
, 그것이 집계를 필요로하기 때문에 ... 나는 그냥 그냥 어떻게 데이터를 표시하고 싶지만 각 수평 방식으로 pivot
은 좋은 선택이 아니다, group by
각 FINGERID에 대한 ISDUPLICATED
작동하지 않기 때문에 USERID.
`select
USERID,
SUM(case when FINGERID=1 then 1 END) as FINGERID_1,
SUM(case when FINGERID=2 then 2 END) as FINGERID_2,
SUM(case when FINGERID=3 then 3 END) as FINGERID_3,
SUM(case when FINGERID=4 then 4 END) as FINGERID_4,
SUM(case when FINGERID=5 then 5 END) as FINGERID_5,
SUM(case when FINGERID=6 then 6 END) as FINGERID_6,
SUM(case when FINGERID=7 then 7 END) as FINGERID_7,
SUM(case when FINGERID=8 then 8 END) as FINGERID_8,
SUM(case when FINGERID=9 then 9 END) as FINGERID_9,
SUM(case when FINGERID=10 then 10 END) as FINGERID_10,
SUM(case when FINGERID=11 then 11 END) as FINGERID_11,
SUM(case when FINGERID=12 then 12 END) as FINGERID_12,
SUM(case when FINGERID=13 then 13 END) as FINGERID_13,
SUM(case when FINGERID=14 then 14 END) as FINGERID_14
FROM TBLUSERFINGER group by userid;`
"집계가 필요하기 때문에 피벗을 선택하는 것이 좋지 않습니다": 집계를 사용하지 않는 이유는 무엇입니까? SUM이 합계가 아닙니다. – tbone
현실에서'SUM'을 사용해야합니다. 왜냐하면 제 사례 문이'sum'없이 결과를 표시하지 않기 때문입니다 ... 나는 데이터를 아무런 수정없이 수평 적으로 만 원합니다. –
I 출력물에서 어떤 것을 이해하지 못한다. 예를 들어, FINGERID_7_TEMPLATE, FINGERID_7_ISLOCKED 및 FINGERID_7_ISDUPLICATE 열이있을 것입니다. 그래도 FINGERID_7 열은 무엇입니까? 손가락 ID 자체는 7이며, 이는 열 이름으로 표시됩니다. 필자는 열에 FINGERID_7 열이 있어야한다고 생각하지 않지만 확실히하고 싶었습니다. 어느 쪽이든 조언 해주십시오. – mathguy