加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读