[英]Trouble pivoting data in DB2
在將此標記為重復之前,請知道我已經通過這些鏈接在SO2和IBM Developers 上的DB2中進行了關於 DB2中Pivoting的研究(即使DB2沒有PIVOT
),但是我只是無法理解如何使用我的數據,需要一些幫助。 我試圖使用來自這兩個鏈接的示例來操縱我的字符串,但無法使其正常工作。 我不要求任何人為我編寫完整的代碼,而只是給我一個正確的方向,說明如何更改我的字符串以檢索所需的結果。 先感謝您。
當前字符串:
SELECT
cfna1 AS "Customer Name", cfrisk AS "Risk Rating", cfrirc AS "Rated By", date(digits(decimal(cfrid7 + 0.090000, 7, 0))) AS "Risk Rated Date",cfuc3n3 AS "Credit Score", date(digits(decimal(cf3ud7 + 0.090000, 7, 0))) AS "CR Date"
FROM cncttp08.jhadat842.cfmast cfmast
WHERE cfcif# IN ('T000714', 'T000713', 'T000716', 'T000715')
ORDER BY
CASE cfcif#
WHEN 'T000714' THEN 1
WHEN 'T000713' THEN 2
WHEN 'T000716' THEN 3
WHEN 'T000715' THEN 4
END
字符串預期的結果:
Customer Name | Risk Rating | Rated By | Risk Rated Date | Credit Score | CR Date
Elmer Fudd 8 MLA 2018-02-08 777 2018-02-08
結果我想實現:
Elmer Fudd
Risk Rating 8
Rated By MLA
Risk Rated Date 2018-02-08
Credit Score 777
CR Date 2018-02-08
使用開發人員鏈接中建議的unpivot方法,並使用cast將所有列轉換為varchar。
例:
select st1.id1, unpivot1.col1, unpivot1.val1
from (
select id1, char1 , date1, number1
from sometable
) st1,
lateral (values
('char col', cast(st1.char1 as varchar(100))),
('date col', cast(st1.date1 as varchar(100))),
('number col', cast(st1.number1 as varchar(100)))
) as unpivot1 (col1, val1)
order by st1.id1
我認為在sql中不可能輸出-您是說這樣的意思嗎?
id_group Data_Type Value
1 Name Elmer Fudd
1 Risk Rating 8
1 Rated By MLA
1 Risk Rated Date 2018-02-08
1 Credit Score 777
1 CR Date 2018-02-08
為此,我們需要另一列將所有元素組合在一起-我稱之為“ id_group”,這是標識組的列
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.