Вы не можете поместить динамический оператор в инструкцию PIVOT IN без использования PIVOT XML, который выводит несколько меньше желаемого результата. Тем не менее, вы можете создать строку IN и ввести ее в свой оператор.
Во-первых, вот моя таблица образцов;
myNumber myValue myLetter
---------- ---------- --------
1 2 A
1 4 B
2 6 C
2 8 A
2 10 B
3 12 C
3 14 A
Сначала настройте строку для использования в инструкции IN , Здесь вы помещаете строку в строку «str_in_statement». Мы используем COLUMN NEW_VALUE и LISTAGG для настройки строки.
clear columns
COLUMN temp_in_statement new_value str_in_statement
SELECT DISTINCT
LISTAGG('''' || myLetter || ''' AS ' || myLetter,',')
WITHIN GROUP (ORDER BY myLetter) AS temp_in_statement
FROM (SELECT DISTINCT myLetter FROM myTable);
Ваша строка будет выглядеть так:
'A' AS A,'B' AS B,'C' AS C
Теперь используйте оператор String в вашем запросе PIVOT.
SELECT * FROM
(SELECT myNumber, myLetter, myValue FROM myTable)
PIVOT (Sum(myValue) AS val FOR myLetter IN (&str_in_statement));
Вот вывод:
MYNUMBER A_VAL B_VAL C_VAL
---------- ---------- ---------- ----------
1 2 4
2 8 10 6
3 14 12
Однако существуют ограничения. Вы можете конкатенировать строку до 4000 байт.
Похоже, что это проблема с библиотекой. В настоящее время он использует старую версию React (v 0.14) как одноранговую зависимость. Как вы сказали, 15.5 изменений в prop-types
. Вы можете разветвить библиотеку и изменить prop-types
(пример: https://github.com/react-d3/react-d3-basic/pull/51/files ), но это должно быть закрепленных библиотечными работниками.
Вот проблема, более подробная информация: https://github.com/react-d3/react-d3-basic/issues/56