【发布时间】:2015-07-23 16:18:53
【问题描述】:
我想在使用 SQL Server 比较查询中的字符串时忽略大小写。到目前为止,我可以使用这样的方法来做到这一点:
SELECT *
FROM Venue
WHERE
Name COLLATE Latin1_general_CI_AI Like '%cafe%' COLLATE Latin1_general_CI_AI
有没有办法设置一个全局指令以影响每个查询? 像这样的:
SET COLLATE Latin1_general_CI_AI;
SELECT *
FROM Venue
WHERE
Name Like '%this%';
SELECT *
FROM Venue
WHERE
Name Like '%that%';
...
谢谢!
【问题讨论】:
-
是否有不能将数据库的排序规则设置为不区分大小写选项的原因? (msdn.microsoft.com/en-us/library/ms175835(v=sql.110).aspx)
-
或者,您可以将表中各个列的排序规则设置为与数据库的排序规则不同。 How to set column collation
-
不幸的是,用户想要选择是否要在每次查询之前忽略大小写。
-
如果您无权更改排序规则,我发现最简单的方法是使用 UPPER 或 LOWER 函数来比较数据。我以前使用过区分大小写的数据库。我理解你的痛苦!
标签: sql-server tsql collation case-sensitive case-insensitive