在 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_AS
对 CustID
和 OrderID
列强制执行区分大小写的比较。
修改列属性以实现永久区分大小写
为了保持区分大小写的行为一致,您可以直接在表定义中调整列属性。 默认情况下,创建的列具有不区分大小写的属性。
将 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中文网其他相关文章!