我正在尝试查找包含 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%';
这两种方法都有效,分别返回包含“pending”和“PENDING”的记录。所以问题似乎出在LIKE
克劳斯的模式匹配上。
我可以做些什么来执行这个区分大小写的搜索?