Google bigquery 如何从字符串中获取前两个单词?

Google bigquery 如何从字符串中获取前两个单词?,google-bigquery,Google Bigquery,我想从字符串中找出前两个单词 例如,下面这句话(字段名): 123445 我只想得到“一二” 我尝试了下面的代码,但它只给了我第一个单词 选择SUBSTR(名称,1,STRPOS(名称,) 我有没有办法得到我想要的结果?提前谢谢您可以使用REGEXP\u EXTRACT(句子,r'\w+\s+\w+) 比如说 #standardSQL WITH `project.dataset.table` AS ( SELECT 'One Two Three Four Five' sentence ) S

我想从字符串中找出前两个单词

例如,下面这句话(字段名):

123445

我只想得到“一二”

我尝试了下面的代码,但它只给了我第一个单词

选择SUBSTR(名称,1,STRPOS(名称,)


我有没有办法得到我想要的结果?提前谢谢

您可以使用
REGEXP\u EXTRACT(句子,r'\w+\s+\w+)

比如说

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'One Two Three Four Five' sentence
)
SELECT sentence, REGEXP_EXTRACT(sentence, r'\w+\s+\w+') AS first_two_words
FROM `project.dataset.table`   
输出

Row sentence                    first_two_words  
1   One Two Three Four Five     One Two  

也要考虑调整后的版本如下,如果你需要处理边缘情况时,只有一个词在句子

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'One Two Three Four Five' sentence UNION ALL
  SELECT 'One'
)
SELECT sentence, REGEXP_EXTRACT(sentence, r'\w+(?:\s+\w+)?') AS first_two_words  
FROM `project.dataset.table`   
结果

Row sentence                    first_two_words  
1   One Two Three Four Five     One Two  
2   One                         One     
您可以阅读有关REGEXP\u EXTRACT的更多信息


另外,请注意:BigQuery使用库提供正则表达式支持;有关其正则表达式语法,请参阅该文档

嗨,米哈伊尔,你们有什么参考资料让我可以在BigQuery中学习REGEX,这也提供了一个例子吗?谢谢