Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用LIKE时SQL Server返回错误的结果_Sql_Sql Server_Search_Sql Like - Fatal编程技术网

使用LIKE时SQL Server返回错误的结果

使用LIKE时SQL Server返回错误的结果,sql,sql-server,search,sql-like,Sql,Sql Server,Search,Sql Like,我创建了一个新的DB测试,在其中添加了一个新表tblTest和一个列名 插入一些记录:明,丁,贾斯汀 create database TEST go use test go create table tblTest (Name varchar(50)) go insert tblTest values ('Minh') insert tblTest values ('Tinh') insert tblTest values ('Justin') 然后我运行这个查询 Select * from

我创建了一个新的DB测试,在其中添加了一个新表tblTest和一个列名

插入一些记录:明,丁,贾斯汀

create database TEST
go
use test
go
create table tblTest (Name varchar(50))
go
insert tblTest values ('Minh')
insert tblTest values ('Tinh')
insert tblTest values ('Justin')
然后我运行这个查询

Select * from tblTest where Name like '%in%'
结果是:贾斯汀。Minh和Tinh不显示


任何人都可以告诉我如何修复此问题?

如果此查询有效并提供必要的输出,请尝试

with tblTest as
(
   Select 'Minh' name from dual union
   Select 'Tinh' name from dual union
   Select 'Justin' name from dual 
)
Select * from tblTest where Name like '%in%'
否则,使用删除tblTest中的所有记录

DELETE from tblTest;
然后插入记录,如下所示:

INSERT INTO TBLTEST (NAME) VALUES ('Minh');
INSERT INTO TBLTEST (NAME) VALUES ('Tinh');
INSERT INTO TBLTEST (NAME) VALUES ('Justin');
现在再次尝试执行select查询。
正如@podiluska所指出的,可能有一些外国垃圾字符。

检查这个例子,它会根据您的需要给我您的结果。第一个%用于前一个,最后一个%用于成功

declare @t table (name varchar(50))
insert into @t values('Minh'),('Tinh'),('Justin')

Select * from @t where Name like '%in%'
结果将是

name
Minh
Tinh
Justin

这应该行得通。什么是Select*from tblTest return?从您的结果来看,第二个%似乎不存在。您能给我们看一下create和insert语句吗?我怀疑是外来字符。数据类型?我们可以假设这是一个nvarchar,Tinh和Minh没有使用英语,而是一些带有口音的外国东西,只是看起来很相似,但不相似吗?我重新安装了Windows,它完全不起作用,结果是一样的。我有3台笔记本电脑,其中2台给出了错误的结果相同的DB,相同的query@Kelvin它不是windows,也不是SQL Server。这是您的数据。根据使用双表的语法,您正在使用Oracle;问题是关于SQL女士可能的不当行为。甲骨文是这样做的。@podiluska我在3台笔记本电脑中使用了相同的数据库,其中2台给出了错误的结果,第3台给出了正确的结果。你在试我的例子吗。你们这一方的产出是什么?是的,我有。但是输出还是贾斯汀。