sql-server - LIKE 与区分大小写的通配符

标签 sql-server sql-server-2016

我有以下查询:

SELECT *
FROM sys.objects AS O
WHERE O.is_ms_shipped = 0
AND O.name LIKE '%[A-Z][A-Z][A-Z]%' COLLATE Latin1_General_CS_AS;

这应该找到数据库中至少具有三个连续大写字符的所有对象,但它似乎不起作用,我不太确定为什么。我尝试明确列出所有字符而不是指定范围,但它没有解决问题。

示例数据:

name
---------
HTMLTable
HtmlTable

期望的输出:

name
---------
HTMLTable

最佳答案

试试这个:

LIKE '%[A-Z][A-Z][A-Z]%' COLLATE Latin1_General_Bin

关于sql-server - LIKE 与区分大小写的通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48881636/

相关文章:

sql-server - SQL 中的高效日期比较

sql - 如何在不使用游标的情况下在 SQL 中计算运行总计?

sql - 如何获取 varchar(MAX) 字符串类型的 XML 标记的值?

sql - 简单查询的选择性估计错误

sql-server - 如何在事务内获取 Identity 列值(尚未提交)

sql - INNER JOIN 与 INNER JOIN (SELECT . FROM)

sql-server - 如何删除 SSIS 中数据流任务中的列?

sql-server - SQL 2016 无法创建列主 key

sql - 如何列出 SQL 查询中使用的所有列(包括架构和表)

c# - 如何在实体中的使用表中创建 PK 和唯一用户名(使用代码优先)?