为什么 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
这个问题已经困扰我一个小时了。
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