为什么 LIKE returns sql 中没有选择行?

Why LIKE returns no rows selected in sql?

这个问题已经困扰我一个小时了。

Table:

--------------------------------------------
NAME    |                       CHAR(10)   |
SURNAME |                       CHAR(10)   |
RANK    |                       VARCHAR2(5)|
--------------------------------------------

如果姓氏以字母 'n' 结尾,我想提取姓名和姓氏。

注意:LIKE 不能很好地与 char(10) 一起使用,所以我将该列转换为 varchar2(10),使用 :

ALTER TABLE students
MODIFY SURNAME VARCHAR2(10);

我试过这个:

SELECT NAME,SURNAME
FROM students
WHERE SURNAME LIKE '%n';

Unfortunately it gives me : no rows selected.

我认为我的列在最后一个字符后有空格..

我仍然不知道我的情况应该如何。

我什至尝试调用 to_char() 函数,它给了我相同的输出。

您可能遇到了数据中的空格问题。

试试这个:

SELECT NAME, SURNAME
FROM students
WHERE rtrim(SURNAME) LIKE '%n'

您提到的列可能存在类型转换,请尝试。

Select 姓名 来自学生 其中 rtrim(upper(surname)) like '%N';

试试这个作为替代方法:WHERE CHARINDEX('n',surname) > 0