2016-12-14 14 views
1

Ниже сценариев (любой из двух ниже, как обе дают одинаковый вывод) приводит имя дочерней части в том же поле. Однако они должны находиться в разных областях. [Загрузите XML-данные с несколькими дочерними элементами с таким же именем в Teradata

Select X.* 
FROM(
Select NEW XML(Payload).XMLEXTRACT('/', NULL) TableA 
FROM Parents 
)C, 
XMLTABLE (
'/Father' 
PASSING C.TableA 
COLUMNS 
"Wife_Name" VARCHAR(20) PATH '/Father/Wife/Name', 
"Daughter_Name" VARCHAR(20) PATH '/Father/Wife/Daughter/Name' 
)AS X; 

SELECT CAST(NEW XML(Payload).XMLEXTRACT('/Father/Wife/Name', NULL) AS VARCHAR(32) CHARACTER SET UNICODE) AS "Wife_Name", 
    CAST(NEW XML(Payload).XMLEXTRACT('/Father/Daughter/Name', NULL) AS VARCHAR(32) CHARACTER SET UNICODE) AS "Daughter_Name" 
FROM Parents; 
  • Выходной ток (снизу скриптом)

жена Дочь

Марта Rani Майя

Ожидаемый результат

жена Дочь

Марта Rani

Марта Майя

XML File

<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?> 
<Father> 
    <Wife> 
     <Name>Martha</Name> 
    </Wife> 
    <Children> 
     <Daughter> 
      <Name>Rani</Name> 
      <Age>12</Age> 
     </Daughter> 
     <Daughter> 
      <Name>Maya</Name> 
      <Age>16</Age> 
     </Daughter> 
    </Children> 
</Father> 

ответ

0

Пересмотр вопрос:

В формате XML показывает: имя обеих дочерей должны быть в другой строке (не поля) ,

Над сценариями можно получить имя обоих дочерей - это одна и та же строка, разделенная пробелом. Однако ожидаемый результат - получить имена обоих дочерей в двух разных записях (строках) с именем мамы (Martha) в обеих записях