我在SQL Server 2016上使用全文CONTAINS
来搜索表。但是,如果我在查询中更改案例,我会得到不同的结果。例如:
这样做(大写 L ):
select * FROM CONTAINSTABLE(OITM, (ItemCode), '"L-1326*"' )
返回:
但这样做(小写'l')::
select * FROM CONTAINSTABLE(OITM, (ItemCode), '"l-1326*"' )
返回:
我的全文目录定义如下:
CREATE FULLTEXT CATALOG SBOWeex
WITH ACCENT_SENSITIVITY = OFF
GO
我的FullText索引定义如下:
CREATE FULLTEXT INDEX ON [dbo].[OITM] (
ItemCode Language 3082
,ItemName Language 3082
,CodeBars Language 3082
,SuppCatNum Language 3082
)
KEY INDEX OITM_PRIMARY
ON SBOWeex
WITH CHANGE_TRACKING AUTO
GO
ALTER FULLTEXT INDEX ON [OITM] SET STOPLIST = OFF
我不应期望两个查询都有相同的结果吗?
编辑:我正在使用Latin1-General,不区分大小写,重音敏感的排序规则。但我的全文目录定义为重音敏感度OFF。此外,这似乎只发生在组合“L - ”和 l - 的任何其他字母与“ - ”相结合似乎在西班牙语和英语解析中具有相同的行为
答案 0 :(得分:0)
这取决于您正在运行的排序规则。听起来你正在运行区分大小写的排序规则。使用西班牙语,您还需要了解您是否正在运行重音敏感或重音不敏感的校对。
要查找数据库的排序规则,请按照此处的步骤操作: https://docs.microsoft.com/en-us/sql/relational-databases/collations/view-collation-information
然后,一旦你知道,看看罗伯特谢尔顿的文章Questions About SQL Server Collations You Were Too Shy to Ask。