각 테이블에는 파쇄 및 출력 테이블에 넣어야하는 알 수없는 조사 응답이 포함 된 XML 필드가있는 원본 테이블이 있습니다. 나는 노드와 OPENXML을 시도해 보았지만 제대로 작동하지 않는 것 같습니다. 나의 연구에서, 나는 CROSS APPLY를 사용해야한다고 생각하고 있지만, 나는 이해하고 그것을 작동하게하는 방식으로 머리 속에 모든 것을 집어 넣을 수는 없다. 나는 간단한 것을 놓치고있는 것에 대해 사과한다. 그러나 나는 정말로 붙어 있었고, 이것을 다루는 방법에 대해 제안 된 어떤 도움에 감사 할 것이다.SQL Server의 XML 열을 새 테이블로 파쇄
<survey>
<data>
<result>
<id>12345</id>
<date_submitted>2017-05-10 09:30:15</date_submitted>
<url_variables>
<respondent_id>
<key>respondent_id</key>
<value>987654</value>
<type>url</type>
</respondent_id>
<respondent_level>
<key>respondent_level</key>
<value>5</value>
<type>url</type>
</respondent_level>
</url_variables>
<survey_data>
<question>
<id>1</id>
<answer>Yes</answer>
</question>
<question>
<id>2</id>
<answer>No</answer>
</question>
<question>
<id>3</id>
<subquestions>
<subquestion>
<id>4</id>
<answer>Maybe</answer>
</subquestion>
<subquestion>
<id>5</id>
<answer>I don't know</answer>
</subquestion>
</subquestions>
</question>
... more questions ...
</survey_data>
</result>
<result>
<id>67890</id>
<date_submitted>2017-05-11 10:00:00</date_submitted>
<url_variables>
<respondent_id>
<key>respondent_id</key>
<value>34567</value>
<type>url</type>
</respondent_id>
<respondent_level>
<key>respondent_level</key>
<value>10</value>
<type>url</type>
</respondent_level>
</url_variables>
<survey_data>
<question>
<id>1</id>
<answer>No</answer>
</question>
<question>
<id>2</id>
<answer>Yes</answer>
</question>
<question>
<id>3</id>
<subquestions>
<subquestion>
<id>4</id>
<answer>Definitely not</answer>
</subquestion>
<subquestion>
<id>5</id>
<answer>I object</answer>
</subquestion>
</subquestions>
</question>
... more questions ...
</survey_data>
</result>
... more results ...
<data>
</survey>
:
ImportId SurveyId DateImported ResponseData
-------- -------- ------------ ------------
1 11223344 2017-05-21 18:00:00.00 <survey><data><result>...
2 55667788 2017-05-21 18:01:00.00 <survey><data><result>...
3 99009988 2017-05-21 18:02:00.00 <survey><data><result>...
여기 드 responseData 열에서 XML의 간단한 예입니다 : 여기
은 다음과 같습니다 가져온 데이터 (내가 통제 할 수없는 형식)를 포함하는 소스 테이블의ResultId SurveyId RespondentId RespondentLevel DateSubmitted
-------- -------- ------------ --------------- -------------
12345 11223344 987654 5 2017-05-10 09:30:15
67890 11223344 34567 10 2017-05-11 10:00:00
...
(Data extracted from the rest of ImportId 1 followed by ImportId 2, 3, etc)
ResultId QuestionId SubquestionId Answer
---------- ---------- ------------- ------
12345 1 0 Yes
12345 2 0 No
12345 3 4 Maybe
12345 3 5 I don't know
67890 1 0 No
67890 2 0 Yes
67890 3 4 Definitely not
67890 3 5 I object
...
(Data extracted from the rest of ImportId 1 followed by ImportId 2, 3, etc)
0,123,516 :
나는 각 드 responseData 분야에서 복수의 결과를 얻기 위해 XML을 파쇄,이 데이터를 가지고 다음과 같은 두 개의 테이블에 넣어 필요
두 개의 쿼리
예를 필요 당신이 읽을 수 있습니다 [이] (http://stackoverflow.com/questions/13931604/t-sql-convert-xml-field-to-multi-column-data 세트). –