Access 2013:如何编写查询筛选Tag列中独立的QR1值?
解决Access中匹配独立标签的问题
针对你遇到的这个问题,我之前帮同事处理过类似场景,Access里处理这种带分隔符的标签确实得避免通配符误匹配,这里有两种实用的写法可以解决:
方法1:分情况匹配(直观易懂)
直接针对QR1可能出现的四个位置写条件,覆盖所有场景:
WHERE Tag = 'QR1' OR Tag LIKE 'QR1 / *' OR Tag LIKE '* / QR1' OR Tag LIKE '* / QR1 / *'
每个条件对应的场景:
Tag = 'QR1':处理标签列只有"QR1"这一个值的情况Tag LIKE 'QR1 / *':处理QR1在标签开头,后面跟着其他标签的情况(比如"QR1 / QR2")Tag LIKE '* / QR1':处理QR1在标签结尾,前面有其他标签的情况(比如"QR2 / QR1")Tag LIKE '* / QR1 / *':处理QR1在标签中间,前后都有其他标签的情况(比如"QR2 / QR1 / QR3")
方法2:统一前缀后缀(更简洁)
把标签列的前后都加上分隔符,这样不管QR1在哪个位置,都能统一匹配,写法更简洁:
WHERE ' / ' & Tag & ' / ' LIKE '* / QR1 / *'
原理是:给Tag字段前后都加上" / ",比如原标签是"QR1 / QR11b",就会变成" / QR1 / QR11b / ",这时候用LIKE '* / QR1 / *'就能准确匹配到独立的QR1,不会误碰QR11b这类包含QR1的标签。
注意:要确保条件里的分隔符(" / ")和你数据表中实际的分隔符完全一致,如果你的数据里斜杠前后的空格有变化(比如有的是"/"不带空格),需要调整条件里的分隔符格式哦。
内容的提问来源于stack exchange,提问作者user3220812
相关产品推荐
相关产品推荐

