首页 >数据库 >mysql教程 >如何在 SQL Server WHERE 子句中执行区分大小写的搜索?

如何在 SQL Server WHERE 子句中执行区分大小写的搜索?

Susan Sarandon
Susan Sarandon原创
2025-01-14 09:05:42987浏览

How to Perform Case-Sensitive Searches in SQL Server WHERE Clauses?

在 SQL Server WHERE 子句中实现区分大小写的搜索

SQL Server 在 WHERE 子句中进行字符串比较的默认行为不区分大小写。 当需要精确、区分大小写的搜索时,这会带来挑战。

利用排序规则进行区分大小写的比较

解决方案在于利用COLLATE关键字。 该关键字允许您指定比较所涉及的列的排序规则,从而定义字符串匹配的规则,包括区分大小写。

例如:

<code class="language-sql">SELECT 1
FROM dbo.Customers
WHERE CustID COLLATE SQL_Latin1_General_CP1_CS_AS = @CustID
AND OrderID COLLATE SQL_Latin1_General_CP1_CS_AS = @OrderID</code>

此处,COLLATE SQL_Latin1_General_CP1_CS_ASCustIDOrderID 列强制执行区分大小写的比较。

修改列属性以实现永久区分大小写

为了保持区分大小写的行为一致,您可以直接在表定义中调整列属性。 默认情况下,创建的列具有不区分大小写的属性。

将 COLLATE 与 LIKE 运算符集成

COLLATE 关键字与 LIKE 运算符无缝集成,以进行区分大小写的模式匹配:

<code class="language-sql">SELECT *
FROM tbl_Partners
WHERE PartnerName COLLATE SQL_Latin1_General_CP1_CS_AS LIKE 'MyEx%' COLLATE SQL_Latin1_General_CP1_CS_AS</code>

此查询对以“MyEx”开头的 PartnerName 值执行区分大小写的搜索。

以上是如何在 SQL Server WHERE 子句中执行区分大小写的搜索?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn