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

Oracle SQL通配符未返回预期结果集问题排查

问题原因与解决方法

核心问题是混淆了=运算符和LIKE关键字的作用:

  • 使用=时,Oracle会将'%98511'视为完整的字符串进行精确匹配,只会返回ident_num字段值完全等于%98511的记录,而你的数据中只有值为98511的行,因此返回0行。
  • 要让%作为通配符(匹配任意前缀字符,包括无字符)生效,必须使用LIKE关键字替代=。

正确的SQL语句

select * from my_table where ident_num LIKE '%98511';

这条语句会匹配所有以98511结尾的ident_num值,自然会返回你预期的1行结果。

额外注意事项

  • 如果需要匹配包含%符号的字符串,使用=时直接写即可;但使用LIKE时需要对%进行转义,例如:LIKE '%\%%' ESCAPE '\'。
  • 确认ident_num字段为字符类型(如VARCHAR2),若为数值类型,使用LIKE会触发隐式类型转换,可能影响查询性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:44:51