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

如何在BigQuery中将指定列转为两行并填充指定默认值

解决方案

你可以通过UNNEST函数结合条件生成的数组来实现需求:当qst_no为'100'时生成包含'Y'和'N'的数组,其他情况生成仅包含qst_no值的单元素数组,再通过UNNEST展开数组得到多行结果。

实现SQL语句

SELECT 
  qst_no,
  UNNEST(
    CASE 
      WHEN qst_no = '100' THEN ['Y', 'N']
      ELSE [qst_no]
    END
  ) AS qst_val
FROM db.QUESTIONS;

逻辑说明

  • 当qst_no等于'100'时,CASE返回包含两个元素的数组,UNNEST会将数组拆分为两行,分别对应'Y'和'N'。
  • 对于其他qst_no值,CASE返回仅包含qst_no值的单元素数组,UNNEST展开后仍为一行,保持与原qst_no一致的qst_val。

结果验证

假设原表数据为:

qst_noqst_val
100xxx
101yyy
102zzz

执行上述SQL后,会得到你期望的结果:

qst_noqst_val
100Y
100N
101101
102102

如果实际需求是其他情况保留原qst_val字段值(而非与qst_no一致),只需将ELSE [qst_no]改为ELSE [qst_val]即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:22:35