首页 > 解决方案 > Bigquery SQL 提取字符串左侧的文本

问题描述

我有以下数据,即季度或年。我如何在 SQL legacy 中重写它以便它可以显示?

原始数据:

  1. Q2M4_20/21
  2. Q3M2_20/21
  3. Q1M4_18/19
  4. Q1_18/19_Actuals
  5. Q1_18/19_Budgets

目标(需要结果):

  1. FY20_Q2M4
  2. FY20_Q3M2
  3. FY18_Q1M4
  4. FY18_Q1_Actuals
  5. FY18_Q1_Budget

注意:我希望 sql 也执行以下操作:

  1. 从 QQ_YY 重组为 YY_QQ
  2. 去掉“/##”正斜杠和后面的两位数
  3. 在“YY_QQ”前添加文字“FY”

我尝试了 CHARINDEX 我的错误消息指出“2.10 - 2.23: Unrecognized function charindex”

感谢您查看这个。

标签: sqlgoogle-bigquery

解决方案


以下是 BigQuery 标准 SQL

select line, 
  format('FY%s_%s%s', 
    split(parts[offset(1)], '/')[offset(0)], 
    parts[offset(0)], 
    ifnull('_' || parts[safe_offset(2)], '')
  ) as result
from `project.dataset.table`,
unnest([struct(split(line, '_') as parts)])    

如果应用于您问题的样本数据 - 输出是

在此处输入图像描述


推荐阅读