Google bigquery 在BigQuery中转换数组中的值

Google bigquery 在BigQuery中转换数组中的值,google-bigquery,Google Bigquery,假设我有一个列如下的表: de/a/la/les/un/une/oi/ke/el/para/d/pour/for/l/en/这是1行1列中的所有1个值 我想将这些值转换为%de/%a/%la/%les/。。。。等等 基本上,我正在尝试为我稍后将使用的regexp表达式建立一个基础 所以我想,我需要使用SPLITorignal,“/”将原始字符串转换为数组,然后通过CONCAT“%”,original,“…”转换数组中的每个项。。。但是我没能写一个可以工作的查询 有什么想法吗 DZ好的,下面是解决

假设我有一个列如下的表: de/a/la/les/un/une/oi/ke/el/para/d/pour/for/l/en/这是1行1列中的所有1个值

我想将这些值转换为%de/%a/%la/%les/。。。。等等

基本上,我正在尝试为我稍后将使用的regexp表达式建立一个基础

所以我想,我需要使用SPLITorignal,“/”将原始字符串转换为数组,然后通过CONCAT“%”,original,“…”转换数组中的每个项。。。但是我没能写一个可以工作的查询

有什么想法吗


DZ

好的,下面是解决方案:

挑选

数组到字符串数组选择CONCAT“”、original_single、“”FROM UNNESTSPLIToriginal、|作为原始字符串、|作为somecolumnname


下面的FROM…

用于BigQuery标准SQL

REGEXP_REPLACE(original, r'(\w+)', r'%\1 ') AS somecolumnname
您可以使用以下问题中的样本数据进行测试、玩游戏

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'de/a/la/les/un/une/oi/ke/el/para/d/pour/for/l/en/' original
)
SELECT
  REGEXP_REPLACE(original, r'(\w+)', r'%\1 ') AS somecolumnname
FROM `project.dataset.table`  
结果是

Row somecolumnname   
1   %de /%a /%la /%les /%un /%une /%oi /%ke /%el /%para /%d /%pour /%for /%l /%en /