ili*_*ian 62 t-sql sql-server-2005 collation
我想在SQL中比较两个varchars,一个是类似的Cafe,另一个Café在SQL中有一种方法可以比较两个值.例如:
SELECT *
FROM Venue
WHERE Name Like '%cafe%'
Run Code Online (Sandbox Code Playgroud)
那么,如果有一个名称的场所,Big Bobs Café Extraordinaire它将被包含在结果集中?
gbn*_*gbn 95
强制重音不敏感整理
如果要与表变量或临时表varchar列进行比较,还需要确保双方具有相同的排序规则以避免错误或进一步强制
并且因为常量值将具有数据库更新的排序规则:仅用于局部变量,而不是用于常量 nope,甚至不是
SELECT *
FROM Venue
WHERE
Name COLLATE Latin1_general_CI_AI Like '%cafe%' COLLATE Latin1_general_CI_AI
Run Code Online (Sandbox Code Playgroud)
Mit*_*eat 47
通过对您的选择应用特定的重音不敏感排序规则:
SELECT *
FROM Venue
WHERE Name COLLATE Latin1_General_CI_AI Like '%cafe%' COLLATE Latin1_General_CI_AI
Run Code Online (Sandbox Code Playgroud)
CI代表"Case Insensitive",AI代表"Accent Insensitive".
通过使用可以进行口音敏感和口音不敏感搜索 Latin1_general_CI_AI
这AI是针对“不敏感”和AS“ 不敏感”的,即,如果不敏感,则Café和Cafe相同。
在下面的查询中Latin1_general_CI_AI可以分为以下几部分。
latin1 使服务器使用字符集拉丁文1处理字符串,基本上是ascii。
CI指定不区分大小写,因此“ ABC”等于“ abc”。
您的查询应如下所示:
SELECT * FROM Venue WHERE Name COLLATE Latin1_general_CI_AI Like '%cafe%' COLLATE Latin1_general_CI_AI
Run Code Online (Sandbox Code Playgroud)
预期结果如下:
Id name
1 Café
2 Cafe
Run Code Online (Sandbox Code Playgroud)