Oracle数据库无法查询到以指定字符结尾的记录问题求助
你执行like '%n'无返回结果的核心原因是fname字段末尾存在不可见的空白字符,大概率是Oracle定长CHAR类型存储时自动在尾部补的空格,也可能是回车、换行等特殊字符,导致实际存储的值结尾并不是字符n。
可以用以下任意一种方案解决:
- 移除字段右侧的空白字符后再做匹配
SELECT fname FROM faculty WHERE RTRIM(fname) LIKE '%n';
- 移除字段首尾所有空白后匹配,适合字段前后都可能存在空白的场景
SELECT fname FROM faculty WHERE TRIM(fname) LIKE '%n';
如果需要确认空白字符的存在,可以执行以下语句查看字段的实际存储长度,和肉眼可见的字符数量对比验证:
SELECT fname, LENGTH(fname) FROM faculty;
内容的提问来源于stack exchange,提问作者B.R.MADHIVADHANAN
相关产品推荐
相关产品推荐

