게시 : here 이 질문은 teiid 엔진의 XMLTABLE에서만 발생합니다. 나는 다음과 같은 XML 콘텐츠를 구문 분석하고 있습니다 :xpath를 사용하여 xpath를 사용하여 노드 값과 속성의 여러 연결을 결합하십시오. Teeth에서
<AttributeSets>
<ns2:ItemAttributes xml:lang="de-DE">
<ns2:Creator Role="Role1">Creator One</ns2:Creator>
<ns2:Creator Role="Role2">Creator Two</ns2:Creator>
<ns2:Creator Role="Role3">Creator Three</ns2:Creator>
</ns2:ItemAttributes>
</AttributeSets>
여기
Select * From
XMLTABLE(XMLNAMESPACES(DEFAULT 'http://ns1',
'http://ns2/default.xsd' as ns2),
'AttributeSets/ns2:ItemAttributes' PASSING x.AttributeSets
COLUMNS
Creator STRING PATH 'string-join(//ns2:Creator/(@Role, node()) , '', '')'
) p;
x.AttributeSets를 사용하여 위의 내용에있는 XML 입력 변수입니다.
xpath를 사용하여 한 줄로 포맷하고 결합하려고합니다. 뭔가 같은 :
Role3을 Role1, Role2 : 나에게 역할의 쉼표로 구분 된 목록을 제공string-join(//ns2:Creator/@Role , ', ')
작품 :
string-join(//ns2:Creator/concat(./text(), @Role), ', ')
나는 생각이 있기 때문에, 내가 어딘가 가까운 해요
및이
string-join(//ns2:Creator/node(), ', ')
은 다음과 같은 값을 결합합니다. "Creator One, Creator T wo, 창조자 3 ".
string-join(//ns2:Creator/(@Role, node()) , ', ')
이 한 줄에 모든 역할과 제작자를 쉼표 - 구분 :
는 내가 얻을 수있는 가장이었다
Role1: Creator One, Role2: Creator Two, Role3: Creator Three
의 최종 출력을하고 싶습니다. 어떤 이유인지에 대한 concat 연산자는 작동하지 않는 것 같습니다. 도와주세요.
고맙습니다! 두 버전 모두 원활하고 원하는대로 작동합니다! –