sql-server-2008 – 如何使用LIKE执行区分大小写搜索?

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – 如何使用LIKE执行区分大小写搜索?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试查找包含6个或更多字母数字字符的字符串大写的记录。一些例子:
PENDING  3RDPARTY  CODE27

我使用以下语句:

SELECT Details
FROM MyTable
WHERE Details LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';

这将返回包含任何6个或多个字母的单词的所有记录,无论如何。

我已经添加了一个COLLATE语句:

SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';

这一切都没有改变。它仍然返回具有6个或多个字母的单词的记录,无论如何。

作为一个测试,我试过:

SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%pending%';

SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%PENDING%';

这两个工作都分别返回包含“待定”和“待定”的记录。所以这个问题似乎是由LIKE claus的模式匹配。

执行此区分大小写的搜索可以做些什么?

解决方法

尝试使用COLLATE Latin1_General_BIN而不是COLLATE Latin1_General_CS_AS

猜你在找的MsSQL相关文章