2013-10-16 24 views
5

2 sütun içeren BigQuery'de bir tablonun olduğunu varsayalım. İlk sütun bir ismi temsil eder, ikincisi ise rasgele uzunluk değerlerinin sınırlandırılmış bir listesidir. Örnek:BigQuery'de bir dize sütunu bölme

Name | Scores 
-----+------- 
Bob |10;20;20 
Sue |14;12;19;90 
Joe |30;15 

Ben ilk adıdır sütunlara dönüşmek istiyor ve ikinci yüzden gibi tek bir puan değeri ise:

Name,Score 
Bob,10 
Bob,20 
Bob,20 
Sue,14 
Sue,12 
Sue,19 
Sue,90 
Joe,30 
Joe,15 

bu yalnız BigQuery'de yapılabilir mi?

cevap

8

Herkese iyi haber! BigQuery artık SPLIT()! "find all two word phrases that appear in more than one row in a dataset" nde


bak.

Bir dizeden birden çok satır oluşturmak için BigQuery'de bir değer ayırmak için geçerli bir yol yoktur, ancak virgülleri aramak ve ilk değeri bulmak için normal bir ifade kullanabilirsiniz. Daha sonra 2. değeri bulmak için benzer bir sorgu çalıştırın ve böyle devam edin. Yukarıdaki örnekte (UNION ile virgülle) sunulan desen kullanılarak hepsi tek bir sorguda birleştirilebilir.

+0

Güzel arıyorsa - Bu harika! Ortaya çıkan diziden çekmek için bir dizi öğe belirtmek için herhangi bir parametre var mı? –

+0

Anladığımdan emin değilim. Yeni soru gönderilsin mi? Http://stackoverflow.com/a/24172995/132438 adresine bakın. –

6

birisi hala bir cevap

select Name,split(Scores,';') as Score 
from (
     # replace the inner custome select with your source table 
     select * 
     from 
     (select 'Bob' as Name ,'10;20;20' as Scores), 
     (select 'Sue' as Name ,'14;12;19;90' as Scores), 
     (select 'Joe' as Name ,'30;15' as Scores) 
); 
İlgili konular