sql-server-2008 – 如何使用LIKE执行区分大小写搜索?
发布时间:2020-12-12 07:06:15 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试查找包含6个或更多字母数字字符的字符串大写的记录。一些例子: PENDING 3RDPARTY CODE27 我使用以下语句: SELECT DetailsFROM MyTableWHERE Details LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%'; 这将返回包含任何6个或多个字母
我正在尝试查找包含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(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |