You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery中拆分字符串后按指定顺序重新拼接的实现方法

BigQuery 实现指定顺序的字符串拆分重组

针对你需求的字符串格式,可通过以下两种方式实现拆分后按指定顺序拼接:

方法一:直接拆分拼接

直接调用SPLIT函数拆分字符串,按索引取对应部分后拼接:

SELECT
  original_str,
  CONCAT(
    SPLIT(original_str, '-')[OFFSET(4)],
    SPLIT(original_str, '-')[OFFSET(2)],
    SPLIT(original_str, '-')[OFFSET(0)],
    SPLIT(original_str, '-')[OFFSET(3)],
    SPLIT(original_str, '-')[OFFSET(1)]
  ) AS new_str
FROM your_table;

方法二:预拆分优化(避免重复计算)

通过WITH子句预先拆分字符串为数组,再取对应索引拼接,适合处理大量数据时优化性能:

WITH split_data AS (
  SELECT
    original_str,
    SPLIT(original_str, '-') AS parts
  FROM your_table
)
SELECT
  original_str,
  CONCAT(
    parts[OFFSET(4)],
    parts[OFFSET(2)],
    parts[OFFSET(0)],
    parts[OFFSET(3)],
    parts[OFFSET(1)]
  ) AS new_str
FROM split_data;

关键说明:

  • SPLIT(original_str, '-')将原字符串按-拆分为数组,数组索引从0开始,对应原字符串各段:
    • 索引0:xxxx,索引1:yyy,索引2:zzzzz,索引3:aaaaa,索引4:bbbbb
  • 按需求的4、2、0、3、1顺序取数组元素,用CONCAT拼接成目标字符串
  • 如果存在格式不规范的行(拆分后元素不足5个),可将OFFSET替换为SAFE_OFFSET,避免报错(索引不存在时返回NULL)

内容的提问来源于stack exchange,提问作者Federicofkt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:52:45