【发布时间】:2021-04-24 16:07:14
【问题描述】:
我有一个表 TEST_XML,它有一个变体列 SRC_XML,其中包含以下 XML。当我尝试提取 QUESTION_TEXT 和 ANSWER_TEXT 时,结果为 NULL,即使 XML 在相应字段中有值
<DATA_EXPORT>
<HEADER>
<ENTRY_DATE>
<START>2021-04-02</START>
<END>2021-04-02</END>
</ENTRY_DATE>
<QUESTION_COUNT>225</QUESTION_COUNT>
<SURVEY_QUESTIONS>
<QUESTION>
<NUMBER>1</NUMBER>
<QUESTION_TEXT>DO YOU TRAVEL?</QUESTION_TEXT>
<ANSWER_TEXT>NO</ANSWER_TEXT>
</QUESTION>
<QUESTION>
<NUMBER>2</NUMBER>
<QUESTION_TEXT>HOW MANY LANGUAGES DO YOU SPEAK?</QUESTION_TEXT>
<ANSWER_TEXT>6</ANSWER_TEXT>
</QUESTION>
</SURVEY_QUESTIONS>
</HEADER>
</DATA_EXPORT>
我用于提取数据的查询 -
SELECT
XMLGET(D.VALUE, 'QUESTION') AS Q
, GET(XMLGET(Q, 'NUMBER'), '$') AS QUESTION_NUMBER
, GET(XMLGET(Q, 'QUESTION_TEXT'), '$') AS QUESTION
, GET(XMLGET(Q, 'ANSWER_TEXT'), '$') AS ANSWER
FROM TEST_XML,
LATERAL FLATTEN(GET(XMLGET(XMLGET(SRC_XML, 'HEADER', 0),'SURVEY_QUESTIONS'), '$'))D;
我期待的输出是
| QUESTION_NUMBER | QUESTION | ANSWER |
|---|---|---|
| 1 | DO YOU TRAVEL? | NO |
| 2 | HOW MANY LANGUAGUES DO YOU SPEAK? | 6 |
我应该在我的查询中进行哪些更改?请指教。
【问题讨论】:
-
@LukaszSzozda - 我仍然在所有行和列上获得 NULL 值。你能帮忙查询一下吗?
-
请道歉。我不明白它是如何工作的,尤其是 LATERAL join。
标签: xml snowflake-cloud-data-platform