正如@abatishchev提到的,该表可以有整理的差异,当核对
- CI =不区分大小写的,你的查询将工作正常
CS =区分大小写的,你需要在查询
DECLARE @PERSONS table (NAME_CASE_Insensitive varchar(30) COLLATE
Latin1_General_CI_AS_KS_WS NOT NULL
,NAME_CASE_sensitive varchar(30) COLLATE
Latin1_General_CS_AS_KS_WS NOT NULL
)
insert @PERSONS (NAME_CASE_Insensitive , NAME_CASE_sensitive) values
('B-rush','B-rush'),('b-rush1','B-rush1'),('b-rush2','B-rush2')
不区分大小写使用正确的情况下 - 返回所有
SELECT * FROM @PERSONS WHERE NAME_CASE_Insensitive = 'b-rush'
NAME_CASE_Insensitive NAME_CASE_sensitive
------------------------------ ------------------------------
B-rush B-rush
区分大小写 - 返回什么
SELECT * FROM @PERSONS WHERE NAME_CASE_sensitive = 'b-rush'
NAME_CASE_Insensitive NAME_CASE_sensitive
------------------------------ ------------------------------
不区分大小写 - 返回所有
SELECT* FROM @PERSONS WHERE NAME_CASE_Insensitive LIKE '%b-%'
NAME_CASE_Insensitive NAME_CASE_sensitive
------------------------------ ------------------------------
B-rush B-rush
b-rush1 B-rush1
b-rush2 B-rush2
区分大小写 - 返回什么
SELECT* FROM @PERSONS WHERE NAME_CASE_sensitive LIKE '%b-%'
NAME_CASE_Insensitive NAME_CASE_sensitive
------------------------------ ------------------------------
区分大小写 - 返回所有
SELECT* FROM @PERSONS WHERE NAME_CASE_sensitive LIKE '%B-%'
NAME_CASE_Insensitive NAME_CASE_sensitive
------------------------------ ------------------------------
B-rush B-rush
b-rush1 B-rush1
b-rush2 B-rush2
正确喜欢区分大小写
SELECT* FROM @PERSONS WHERE NAME_CASE_sensitive LIKE '%[bB]-%'
NAME_CASE_Insensitive NAME_CASE_sensitive
------------------------------ ------------------------------
B-rush B-rush
b-rush1 B-rush1
b-rush2 B-rush2
显示一些样本数据 – WillardSolutions
什么是DB你”的整理重新查询?是否偶然区分大小写(不寻常但会发生)。 – abatishchev
愚蠢的问题,但因为你使用MS SQL Server,你确定你选择了正确的数据库吗? – DHLopez