像查询中的逗号无法返回任何结果

时间:2016-07-28 18:28:21

标签: sql oracle

使用Oracle db,

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

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

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

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

实施例: 数据库在名称列中有“Sam,Smith”,当有“Sam%”它返回一行时,当我执行“Sam,%”时它不会返回任何行

1 个答案:

答案 0 :(得分:2)

不是回答,但是将其发布为一个,因为我无法在评论中进行格式化。

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

SQL>从双重选择转储('史密斯,斯坦')

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

如果计数,则字符串为11个字符(包括逗号和空格)。逗号是字符44,空格是字符32.如果你查看你的字符串并且你看不到逗号应该是44,你就会知道问题所在。然后你可以让我们知道你在那里看到了什么(只是为了那个角色,我理解发布" Leno,Jay"会侵犯隐私)。

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