【问题标题】:Getting xml Element from variant column of a Snwoflake table从雪花表的变体列中获取 xml 元素
【发布时间】:2021-04-25 02:07:21
【问题描述】:

这是我的示例数据

ID  VERSION ACT_TYPE    EVE_TYPE    CLI_ID  DETAILS OBJ_TYPE    DATE_TIME   AAPP_EVENT_TO_UTC_DT    GRO_ID  OBJECT_NAME OBJ_ID  USER_NAME   USER_ID EVENT_ID    FINDINGS    SUMMARY

6tgbcrq9pfhj1ezsdo82mcrzz   o   SCREENED_CASE   WORLDCHECK  o   <?xml version="1.0" encoding="UTF-8" standalone="yes"?><testPayload><testId>565656-21cf-4c7e-8071-574a1ef78981</testId><testCode>COMPLETED</testCode><testState>TEST</testState><testResults>1</testResults><testRequiredResults>0</testRequiredResults><testExcludedResults>0</testExcludedResults><testAutoResolvedResults>1</testAutoResolvedResults><testproviderTypes>WATCHLIST</testproviderTypes></testPayload>  CASE    9/16/2020 9:45  9/16/2020 9:45  erutrt7-d726-4672-8599-83d21927bec5 o   5786765dfgdfgdfg    System User USER_SYSTEM o   o   <?xml version="1.0" encoding="UTF-8" standalone="yes"?><testCaseEventSummary><testTypes>WATCHLIST</testTypes><testResults>1</testResults></testCaseEventSummary>

我需要从这个表中获取 ID ,testId 。

请注意 testId 在 DETAIL 列中,它是一个 xml 。

我正在尝试类似下面的方法,但它不起作用

select DETAILS:"$" from  audit_event;

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

    首先你需要用parse_xml将它转换成xml,然后使用xmlget函数获取testId字段,如下所示:

    select xmlget(parse_xml(details), 'testId'):"$"::varchar from audit_event
    

    我以为你想要它作为 varchar 回来,所以我把 ::varchar 放在最后这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 2020-06-17
      相关资源
      最近更新 更多