2017-03-09 1 views

답변

2

#standardSQL 
WITH yourTable AS (
    SELECT '756-1__6565656565656, tagtype**unmapped,domain**www.sport.com,userarriveddirectly**False' AS Site_Data 
) 
SELECT 
    REGEXP_EXTRACT(Site_Data, r'domain\*\*(.*)\*\*') AS x, 
    Site_Data 
FROM yourTable 
+0

10x Mikkhai! 그것은 일했다 :) –

2

아래 예제는 문자열을 모두 수행보기는 형식이 있나요? ** 구분 기호 다음에 세 번째 문자열이 항상 필요하다고 가정 할 때 몇 가지 옵션이 있습니다.

1) SPLIT 사용 예 :

#standardSQL 
WITH SampleData AS (
    SELECT '756-1__67648582789116,tagtype**unmapped,domain**www.sport.com,userarriveddirectly**False' AS site_data 
) 
SELECT SPLIT(site_data, '**')[OFFSET(2)] AS visit_type 
FROM SampleData; 

2) REGEXP_EXTRACT를 사용하여, 예를 들면 : 한 단계 더이 촬영

#standardSQL 
WITH SampleData AS (
    SELECT '756-1__67648582789116,tagtype**unmapped,domain**www.sport.com,userarriveddirectly**False' AS site_data 
) 
SELECT REGEXP_EXTRACT(site_data, r'[^\*]+\*\*[^\*]+\*\*([^\*]+)') AS visit_type 
FROM SampleData; 

, 도메인 및 도착 유형을 분할 할 경우, SPLIT 다시 사용할 수 있습니다.

#standardSQL 
WITH SampleData AS (
    SELECT '756-1__67648582789116,tagtype**unmapped,domain**www.sport.com,userarriveddirectly**False' AS site_data 
) 
SELECT 
    SPLIT(visit_type)[OFFSET(0)] AS domain, 
    SPLIT(visit_type)[OFFSET(1)] AS arrival_type 
FROM (
    SELECT SPLIT(site_data, '**')[OFFSET(2)] AS visit_type 
    FROM SampleData 
); 
관련 문제