2017-06-27 22 views
1

我有一列是大小的字符串,哪裏有空間,但有些我想保留,然後收集到這些陣列BigQuery的SQL - 正則表達式,並收集數組

如英國8美國9歐盟42

[英國8,9美國,歐盟42]

林在正則表達式可怕,如何在標準SQL我將如何做到這一點?

感謝

回答

2
#standardSQL 
SELECT col, REGEXP_EXTRACT_ALL(s, '([A-Z]+ [0-9]+)') arr 
FROM (
    SELECT 'col' col, 'UK 8 US 9 EU 42' s 
) 

enter image description here

+0

感謝菲利普滿口!作爲BigQuery專家的快速提問,spark(databricks)最近發佈了一個名爲SQL的高級函數功能。使用簡單的SQL /函數式編程模型進行遞歸轉換非常出色。 BQ的民衆看到了這一點,並考慮到類似的能力? UDF存在,但這是內置/非常簡單的表達,語言不可知和優化 - 看到與BQ標準SQL類似也很酷!愛BQ :) –

+0

https://docs.databricks.com/spark/latest/spark-sql/higher-order-functions-lambda-functions.html –

+2

這些函數可以用BigQuery中的標準SQL表示。例如,'TRANSFORM(values,value - > value + key)'等價於'ARRAY(SELECT value + key FROM UNNEST(value)AS value)'。 –