Проблемы с поворотом данных в DB2 - PullRequest
0 голосов
/ 15 марта 2019

Перед тем, как этот файл будет помечен как дубликат, пожалуйста, знайте, что я провел исследование по Pivoting в DB2 (хотя у DB2 нет PIVOT) по этим ссылкам Поворот в DB2 на SO и IBM Developers , но я просто не могу понять, как это сделать с моими данными, и мне нужна помощь. Я пытался манипулировать моей строкой, используя примеры из обеих этих ссылок, и не смог заставить ее работать. Я не прошу, чтобы кто-нибудь написал для меня полный код, а просто указал мне правильное направление, как изменить мою строку, чтобы получить желаемый результат. Заранее спасибо.

Текущая строка:

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

Результат, ожидаемый от String:

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

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Используйте метод unpivot, предложенный в ссылке для разработчиков, и используйте приведение для преобразования всех столбцов в 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
0 голосов
/ 15 марта 2019

Я не думаю, что вывод возможен в 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" это столбец, который идентифицирует группу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...