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

SELECT语句CASE分支语法与逻辑异常,请求排查修复

问题排查与修正

原SQL存在以下问题:

  • CASE语句语法错误:CASE只能返回单个值,你错误地将三个列的表达式塞进同一个CASE中,导致逗号位置非法
  • 正则表达式匹配不准确:需求是匹配以Dr.开头的姓名,但原表达式^Dr.*会匹配所有以Dr开头的内容(比如DrSmith),漏掉了.,应该用^Dr\..*
  • 截取长度缺失:当姓名以Dr.开头时,需求是仅转换其后3个字母为大写,但原代码substr(mitarbeitername,4)会截取从第4位到末尾的所有字符,未限制长度

修正后的SQL如下,生成三个独立的处理列:

select mitarbeitername,
    -- 处理大写列:Dr.开头则取其后3个字母转大写,否则取前3个字母转大写
    case 
        when regexp_like(mitarbeitername, '^Dr\..*') then upper(substr(mitarbeitername, 4, 3))
        else upper(substr(mitarbeitername, 1, 3))
    end as upper_name,
    -- 处理小写列:取前3个字母转小写
    lower(substr(mitarbeitername, 1, 3)) as lower_name,
    -- 处理首字母大写列:取前3个字母转首字母大写
    initcap(substr(mitarbeitername, 1, 3)) as initcap_name
from mitarbeiter;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:37:11