为什么LIKE不返回在sql中选择的行?

时间:2015-10-16 16:07:26

标签: sql select sql-like

我有这个问题一直困扰我一个小时。

表:

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

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

注意:LIKE对char(10)的效果不佳,所以我将该列转换为varchar2(10),使用:

ALTER TABLE students
MODIFY SURNAME VARCHAR2(10);

我试过这个:

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

不幸的是它给了我:没有选择行。

我认为我的专栏在最后一个字符后面有空格..

我仍然不知道自己的状况应该如何。

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

3 个答案:

答案 0 :(得分:3)

您可能在数据中存在空格问题。

试试这个:

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

答案 1 :(得分:0)

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

选择姓名,姓氏 来自学生 其中rtrim(upper(surname))喜欢'%N';

答案 2 :(得分:0)

尝试此选择:WHERE CHARINDEX(' n',姓氏)> 0