首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MS Access中的模式匹配:是否有“或”操作符?

MS Access中的模式匹配:是否有“或”操作符?
EN

Stack Overflow用户
提问于 2014-07-30 20:07:26
回答 2查看 689关注 0票数 1

我试着在网上搜索这个问题的答案,但是我的Google-fu让我失望了。

我有一个Access数据库,其中包含一个字符串表示的记录。该字符串的前3个字符是创建记录的366天日历日期的3位数字表示(000-366.是的,闰日计数)。

我很难找到正确的模式匹配,以便在一个匹配3位数子字符串的查询中包含,该子字符串可以在1000到366之间,在其中您不会丢失重要的数字。

我知道查询应该是这样的:

代码语言:javascript
运行
复制
SELECT * FROM myTable WHERE Field1 LIKE "^[0-2]## or 3[0-5]# or 36[0-6]*";

...but我找不到任何资源,在MS Access中,说明“或”操作符是什么。我试过“双管”(双管)和“双管”(单管),两者都不起作用。

是否有“或”操作符可以与MS访问模式匹配一起使用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-30 22:20:16

为什么不直接拉前三个角色呢?

代码语言:javascript
运行
复制
SELECT * FROM myTable WHERE CInt(Left(Field1,3)) <= 366

http://www.techonthenet.com/access/functions/datatype/cint.php

票数 1
EN

Stack Overflow用户

发布于 2014-07-30 20:10:25

Access中的 operator非常有限,并且不支持大多数更“成熟”的正则表达式引擎提供的特性。

相反,在WHERE子句中使用以下多个条件:

代码语言:javascript
运行
复制
SELECT * 
FROM myTable 
WHERE Field1 LIKE "[0-2]##*" OR 
      Field1 LIKE "3[0-5]#*" OR 
      Field1 LIKE "36[0-6]*"

另一种选择是简单地将前3个字符提取为字符串,将它们转换为整数,并测试它们的值是否在可接受的范围内。

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

https://stackoverflow.com/questions/25045965

复制
相关文章

相似问题

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