簡體   English   中英

在DB2中樞轉數據時遇到問題

[英]Trouble pivoting data in DB2

在將此標記為重復之前,請知道我已經通過這些鏈接在SO2IBM 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM