大家好我有下表,它是由一個可怕的開發人員設計的如何在沒有聚合的情況下將這些行轉換爲Oracle中的列?
該表包含USERS指紋和他們的USERID的數據。 的FINGERID
值從(1,2,3,4,5,6,7,8,9,10,11,12,13,14)的ISLOCKED
ISDUPLICATE
和值是1
或0
...每個FINGERID已存儲在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)
有像我想要顯示它,因爲2周水平的方式,但沒有運氣...以下是我的select語句
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
,ISDUPLICATED
每個FINGERID,因爲它不會與group by
工作,pivot
是不是一個很好的選擇,因爲它需要聚集......我只是想要顯示的數據只是它是如何的,但在每個水平方式用戶名 。
`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;`
「數據透視不是一個好的選擇,因爲它需要聚合」:爲什麼不使用任何聚合?不是你的總和? – tbone
我被迫在現實中使用'SUM'我不需要它,因爲我的case語句不會顯示沒有'sum'的結果......我只是想讓我的數據在水平上沒有任何編輯 –
我不明白你輸出的內容。例如,您將擁有FINGERID_7_TEMPLATE,FINGERID_7_ISLOCKED和FINGERID_7_ISDUPLICATE列,這很好。什麼是FINGERID_7專欄?手指ID本身是7,並且由列名指示。我不認爲應該在專欄中列FINGERID_7,但只是想確保。請告知任一方式。 – mathguy