sql - like 查询中的逗号无法返回任何结果

标签 sql oracle

使用 Oracle 数据库,

Select name from name_table where name like 'abc%';

返回一行值为“abc, cd”,但是当我在类似查询中的 % 之前使用逗号进行选择查询时,它无法返回任何值。

Select name from name_table where name like 'abc,%';

不返回任何行。如何处理 like 查询中 % 之前的逗号?

示例: 数据库的名称列中有“Sam,Smith”,当类似的有“Sam%”时,它返回一行,当我执行“Sam,%”时,它不返回任何行

最佳答案

不是答案,但将其作为一个答案发布,因为我无法格式化评论。

看看这个并在您自己的机器上使用 DUMP()...看看这是否有帮助。

SQL> select dump('Smith, Stan') from Dual;

DUMP('SMITH,STAN')
-----------------------------------------------------
Typ=96 Len=11: 83,109,105,116,104,44,32,83,116,97,110

如果算起来,该字符串有 11 个字符(包括逗号和空格)。逗号是字符 44,空格是字符 32。如果您查看您的字符串,但没有看到逗号应该在的位置 44,您就会知道这就是问题所在。然后,您可以让我们知道您在那里看到的内容(就该角色而言,我知道发布“Leno,Jay”将侵犯隐私)。

此外,请确保逗号之前没有任何多余字符(可能是不可打印的字符!)。只需比较您用作输入的两个字符串,看看差异可能在哪里。

关于sql - like 查询中的逗号无法返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38644137/

相关文章:

mysql - SQL 行返回顺序

sql - UPLOAD 语句包含 "dynamic"表名和列名? (甲骨文/JDE)

java - 在 J2SE 环境中使用 Hibernate JPA 中的 OracleDataSource

sql - 如何从访问日志中选择 DISTINCT(username) 和 MAX(timestamp) - postgresql

sql - 在 Slick 中执行 SQL 转换

sql - Oracle SQL 表历史记录

ORACLE 使用 SSL 发送电子邮件

oracle - 优化oracle中的简单选择查询

c# - SQL:按日期分组

数据库;同时获取3个表的信息