假设我有一个带有列的表,如下所示: de / a / la / les / un / une / oi / ke / el / para / d / pour / for / l / en / (这是1行1列中的所有1个值)。
我想将这些值转换为%de /%a /%la /%les / ....等等。
基本上,我正在尝试为正则表达式的表达建立基础,以后再使用。
所以我想,我需要使用SPLIT(orignal,'/')将原始字符串转换为ARRAY,然后通过CONCAT('%',original,'')转换数组中的每个项目...但是我无法编写一个行之有效的查询...
有什么想法吗?
DZ
答案 0 :(得分:1)
好的,这是解决方案:
选择
ARRAY_TO_STRING(ARRAY(SELECT CONCAT('',original_single,'')from UNNEST(SPLIT(original,'|'))AS original_single),'|')AS somecolumnname
从.....
答案 1 :(得分:1)
以下是用于BigQuery标准SQL
AcceptOnceFileListFilter
您可以使用以下问题中的示例数据来测试,玩游戏
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`