2017-03-09 4 views

Antwort

2

Siehe Beispiel unten

#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! es funktionierte :) –

2

alle Saiten zu tun haben, dass Format? Es gibt ein paar verschiedene Optionen, vorausgesetzt, dass Sie immer die dritte Zeichenfolge nach dem ** Trennzeichen benötigen.

1) Verwenden Sie SPLIT, zB:

#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) Verwenden Sie REGEXP_EXTRACT, zB:

#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; 

dies noch einen Schritt machen, wenn Sie die Domain und die Ankunft Typ aufgeteilt, Sie können SPLIT wieder verwenden:

#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 
); 
Verwandte Themen