Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将具有重复节点的XML数据加载到Teradata表的不同行中_Xml_Xpath_Teradata_Xmltable - Fatal编程技术网

将具有重复节点的XML数据加载到Teradata表的不同行中

将具有重复节点的XML数据加载到Teradata表的不同行中,xml,xpath,teradata,xmltable,Xml,Xpath,Teradata,Xmltable,我有一个XML数据,格式如下: <Customer> <Name>John Hancock</Name> <Address>100 1st Street, San Francisco, CA 94118</Address> <Phone>(858)555-1234</Phone> <Phone>(858)555-9876</Phone> <Fax>(858)555-9999&l

我有一个XML数据,格式如下:

<Customer>
<Name>John Hancock</Name>
<Address>100 1st Street, San Francisco, CA 94118</Address>
<Phone>(858)555-1234</Phone>
<Phone>(858)555-9876</Phone>
<Fax>(858)555-9999</Fax>
<Email>John@somecompany.com</Email>
</Customer>
这会给出如图所示的结果,并附加电话字段


我想把第二部电话搬到新的一排。是否可以使用Xpath查询执行此类操作?感谢您找到了解决方案,并与面临类似问题的其他人分享

SELECT X.*
FROM (SELECT * FROM VMTEST.customer WHERE customerID = 2) AS C,
       xmltable('Customer/Phone' passing c.customerXML
       Columns "NAME" varchar(255) path '../Name',
       Address varchar (255) path '../Address',
       Phone varchar (255) path '.'
     )
     as X
SELECT X.*
FROM (SELECT * FROM VMTEST.customer WHERE customerID = 2) AS C,
       xmltable('Customer/Phone' passing c.customerXML
       Columns "NAME" varchar(255) path '../Name',
       Address varchar (255) path '../Address',
       Phone varchar (255) path '.'
     )
     as X