You need to enable JavaScript to run this app. SQL中使用concat_ws拼接时如何将is_logged字段的0/1转换为Yes/No
优惠活动
大模型
产品
解决方案
定价
更多

SQL中使用concat_ws拼接时如何将is_logged字段的0/1转换为Yes/No

目标需求实现方案

核心是先对is_logged的取值做映射转换,再传入拼接函数完成组合,可根据所用SQL引擎选择对应写法:

  • 全SQL引擎兼容的通用写法
    替换原逻辑中直接拼接is_logged的部分,用CASE WHEN做值映射,完整代码:
    concat_ws(
      '',
      month, '-', year,
      ',Logged-',
      CASE WHEN is_logged = 1 THEN 'Yes' ELSE 'No' END
    ) info
    
    转换后输出会从原来的Dec - 2020,Logged-1变为预期的Dec - 2020,Logged-Yes。
  • 支持IF函数的引擎精简写法
    适配MySQL、Hive、Spark SQL等带IF语法的引擎,用更简洁的表达式实现值映射,完整代码:
    concat_ws(
      '',
      month, '-', year,
      ',Logged-',
      IF(is_logged = 1, 'Yes', 'No')
    ) info
    

补充说明:当前代码里concat_ws的第一个分隔参数为空字符串,效果和concat函数完全一致,会严格按传入顺序拼接所有字段;如果需要利用concat_ws自动跳过空值的特性,可按需修改第一个位置的分隔符参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 03:54:06