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

如何在Redshift中将布尔值转为0和1?是否仅能用CASE语句?

在Redshift中将布尔值转换为0和1的几种方法

嘿,你提到的case when方法完全可行,而且是非常直观的实现方式,但Redshift里其实还有更简洁的替代方案,我给你整理一下:

  • CASE WHEN语句(你提到的方法)
    这是最通用的写法,可读性拉满,哪怕是新手也能一眼看懂逻辑,还能灵活扩展(比如想把true转成其他数值也很方便)。示例代码:

    SELECT 
      case when your_boolean_field then 1 else 0 end as boolean_to_int
    FROM your_table;
    

    如果需要处理NULL值,还可以补充判断逻辑:

    SELECT 
      case when your_boolean_field is true then 1 
           when your_boolean_field is false then 0 
           else 0 end as boolean_to_int
    FROM your_table;
    
  • CAST函数转换
    Redshift原生支持把布尔类型直接转换为整数,true会被转成1,false转成0,写法更简洁:

    SELECT 
      CAST(your_boolean_field AS INTEGER) as boolean_to_int
    FROM your_table;
    

    要是遇到NULL值,转换后还是NULL,如果想把NULL也统一转成0,可以结合COALESCE:

    SELECT 
      COALESCE(CAST(your_boolean_field AS INTEGER), 0) as boolean_to_int
    FROM your_table;
    
  • 使用::类型转换简写
    这是Redshift里类型转换的语法糖,和CAST效果完全一样,但写起来更短,适合追求代码简洁的场景:

    SELECT 
      your_boolean_field::INTEGER as boolean_to_int
    FROM your_table;
    

    同样处理NULL的话:

    SELECT 
      COALESCE(your_boolean_field::INTEGER, 0) as boolean_to_int
    FROM your_table;
    

总结一下:如果需要复杂的条件逻辑,优先选CASE WHEN;如果只是单纯将布尔值转0和1,CAST或者::的写法更高效简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:09:18