을 얻을 키의 값은 경우에 존재하는 하나의 배열 요소는 변형 열에 눈송이

0

질문

나는 변형 열에 있는 객체의 배열입니다. 내가 값을 얻을 필요의 orgId(iVtXg1iwVmT9Q)에서 이 배열입니다. 어떻게 할까요? 하나가 될 것입니다 orgId 그러나 나는 알 수 없는 요소 색인. 아래 예에 대답은 mycolumn[1].데이터입니다.orgId

[{
           "data": {
              "isCustomerAuthenticated": false,
              "visibility": "open"
           },
           "schema": "jsonschema/2-0-0"
       },
       {
           "data": {
               "orgId": "iVtXg1iwVmT9Q",
               "site": "us-abcde.qa",
               "stage": "staging"
           },
           "schema": "jsonschema/1-0-0"
       },
       {
           "data": {
               "onboardingType": "form"
           },
           "schema": "jsonschema/1-0-1"
       }
   ]
snowflake-cloud-data-platform sql
2021-11-23 21:22:36
2

최고의 응답

1

그래서 당신은 알지 못하는 요소는 당신이 필요하 풀들을 통해 모든 평평하게,그리고 그런 다음 필터링하는 사람이 일치하지 않습니다.

SELECT f.value:data:orgId::text as ordId
FROM table t,
    TABLE(FLATTEN(input => t.mycolumn)) f
WHERE f.value:data:orgId::text IS NOT NULL;

이는 패턴을 선택할 수 있는 다른 요소가 당신이 원하는 sitestage 뿐만 아니라.

SELECT 
    f.value:data:orgId::text AS ordId
    f.value:data:site::text AS site
    f.value:data:staging::text AS staging
FROM table t,
    TABLE(FLATTEN(input => t.mycolumn)) f
WHERE f.value:data:orgId::text IS NOT NULL;
2021-11-23 21:53:08

"자격을"필요한 윈도우 기능,no? 내가 생각하는 여기에 충분.
Gokhan Atil

세상에 나가지만,hattip,WHERE 은 충분히 그렇습니다! 내가 생각하기는 거의 항상 집계/윈도우,그래서 그 사용을 통해 자격을...
Simeon Pilgrim
0

"Naive"텍스트 방법:

SELECT REGEXP_SUBSTR(ARRAY_TO_STRING(col,''), '"orgId":"([^"]*)"',1,1,'e',1)
FROM T;
-- iVtXg1iwVmT9Q

데이터 준비:

CREATE OR REPLACE TABLE T AS 
SELECT PARSE_JSON('[{
           "data": {
              "isCustomerAuthenticated": false,
              "visibility": "open"
           },
           "schema": "jsonschema/2-0-0"
       },
       {
           "data": {
               "orgId": "iVtXg1iwVmT9Q",
               "site": "us-abcde.qa",
               "stage": "staging"
           },
           "schema": "jsonschema/1-0-0"
       },
       {
           "data": {
               "onboardingType": "form"
           },
           "schema": "jsonschema/1-0-1"
       }
   ]') AS col;
2021-11-23 21:45:02

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................