sql >> データベース >  >> RDS >> Sqlserver

名前空間に CROSS APPLY すると、サブノードが重複したレコードを返す

    これを試してください:

    ;WITH XMLNAMESPACES ('http://3ecompany.com/webservices/catalogitemxml' as CI)SELECT Identifier =CI.value('(CI:ProductIdentifiers[1]/CI:Identifier)[1]' , 'varchar(9)'), CAS_Number =Ingred.value('(CI:Cas)[1]', 'varchar(20)'), Chemical_Name =Ingred.value('(CI:ChemicalName)[1]' , 'varchar(100)')FROM @XmlTableCROSS APPLY XMLData.nodes('/ArrayOfCatalogItem/CatalogItem/CI:Msds') AS XT(CI)CROSS APPLY CI.nodes('CI:Ingredients') AS XT18(Ingred)  

    ごとに XML フラグメントのリストを取得します ノードから、ProductIdentifiers を取得します 情報。さらに、このノードから、 のサブ XML フラグメントのリストも取得します。 ノードから詳細を取得します。

    私の出力は次のようになります:




    1. sequelizeの複数の列に一意のインデックスを定義する方法

    2. WHERE条件の値のリストを含むパンダのread_sql

    3. pyODBC を SQL Server 2008 Express R2 に接続できません

    4. PHPMySQLGoogleチャートJSON-完全な例