XML 형식의 데이터베이스를 가져오고 특정 문자가있는 경우 두 개의 속성 값을 뒤집는 쿼리를 작성하려고합니다. 그래서 예를 들면 :xQuery 스왑 속성 값
<people>
<person name="Alice" age="20" team="developer" dep="red" version="old" />
<person name="Sam" age="23" team="marketing" dep="blue" version="old" />
<person name="Bob" age="21" team="sales" dep="green" version="new" />
</people>
이 version="old"
경우에, 나는 팀과 색상 속성을 플립 싶다. 따라서 앨리스는 다음을 갖습니다.
<person name="Alice" age="20" team="red" dep="developer" version="new" />
"old"만있는 행을 반환하는 데이터베이스가 있지만 속성을 바꾸는 방법을 모르겠습니다. 당신의 SQL/XQuery를 믹스는 XQuery의 기본 업데이트 기능을 사용하는 경우
UPDATE mDB
SET people.modify('
for $p in (/people/person)
let $team := $p/@team
let $dep := $p/@dep
replace value of node
$p/@dep
with
$team
replace value of node
$p/@team
with
$dep
')
FROM mDB
WHERE people.exist('
for $p in (/people/person)
where contains(data($p/@version), "old")
return data($person/@version)') != 0
어느 [DBMS] (https://en.wikipedia.org/wiki/DBMS) 제품 사용중인 :
원하는 출력을 생성? "SQL"은 쿼리 언어 일뿐 특정 데이터베이스 제품의 이름은 아닙니다. –
@a_horse_with_no_name SQL 2014, 서비스 팩 1을 사용하고 있습니다. 도움이됩니까? – moiraghan
@a_horse_with_no_name 예! 죄송합니다 – moiraghan