首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带字母范围的PATINDEX排除对话(重音字符)

带字母范围的PATINDEX排除对话(重音字符)
EN

Stack Overflow用户
提问于 2017-03-30 20:49:57
回答 1查看 1.7K关注 0票数 5

我试图弄清楚如何使用patindex来查找字母字符的范围,但不包括重音字符。如果我直接搜索,使用默认的排序规则(不敏感)就可以了。但是,当我搜索一系列字母时,它将与重音字符匹配。

代码语言:javascript
复制
SELECT
    IIF('Ú' = 'U' COLLATE Latin1_General_CI_AI, 'Match', 'No') AS MatchInsensitive,
    IIF('Ú' = 'U' COLLATE Latin1_General_CI_AS, 'Match', 'No') AS MatchSensitive,
    PATINDEX('%[A-Z]%', 'Ú' COLLATE Latin1_General_CI_AI)      AS PIInsensitive,
    PATINDEX('%[A-Z]%', 'Ú' COLLATE Latin1_General_CI_AS)      AS PISensitive

将提供以下结果:

代码语言:javascript
复制
MatchInsensitive MatchSensitive PIInsensitive PISensitive
---------------- -------------- ------------- -----------
Match            No             1             1

我真正想要做的是识别字符串中重音字符的字符位置,所以我实际上是在搜索PATINDEX('%[^A-Z0-9 ]%')

如果我有以下查询,我希望得到2 SELECT PATINDEX('%[^A-Z0-9 ]%', 'médico')的结果,但我得到0。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-30 20:54:48

您可以使用二进制排序规则,例如Latin1_General_100_BIN2

代码语言:javascript
复制
select patindex('%[^a-zA-Z0-9 ]%', 'médico' collate Latin1_General_100_BIN2)

rextester:http://rextester.com/ZICLN98474

返回2

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43128049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档