SQL CASE语句多条件判断问题:需排除特定邮政编码
正确的CASE语句写法
你需要在原有条件基础上,添加排除93650的判断,修正后的SQL如下:
CASE WHEN e.city = 'FRESNO' AND e.zip LIKE '936%' AND e.zip <> '93650' THEN 'FIX' ELSE '' END AS Zip_Error
错误原因说明
你之前尝试的写法存在两个问题:
- 语法错误:
NOT IN后面必须用括号包裹值列表,单个值场景下直接用<>(不等于)或!=更简洁; - 引号未闭合:代码中
'93650缺少右侧单引号,导致SQL解析失败。
多正确邮编的扩展写法
如果后续需要排除多个正确邮编,可使用NOT IN配合括号:
CASE WHEN e.city = 'FRESNO' AND e.zip LIKE '936%' AND e.zip NOT IN ('93650', '936XX') THEN 'FIX' ELSE '' END AS Zip_Error
内容的提问来源于stack exchange,提问作者user23531439
相关产品推荐
相关产品推荐

