我需要使用SQL来查找字符串中特定位置的字符序列。
示例: atcgggatgccatg
我需要找到从字符7或字符7-9开始的'atg‘,这两种方法都可以。我不想在字符串的末尾找到'atg‘。我知道LIKE,但不知道如何在特定的位置使用它。
谢谢
发布于 2015-11-25 08:45:29
在MS Access中,您可以这样写:
where col like '???????atg*' or
col like '????????atg*' or
col like '?????????atg*'但是,如果您对这种类型的比较感兴趣,则可以考虑使用支持正则表达式的数据库。
发布于 2015-11-25 08:34:24
如果你看一看this page,你会发现LIKE完全能够做你想做的事情。例如,要查找3字符偏移量处的内容,您可以使用下面这样的内容
SELECT * FROM SomeTable WHERE [InterestingField] LIKE '___FOO%''_‘(下划线)是任何字符的位置标记。在模式中有3个"any char“标记,并带有尾随的'%',这意味着上面的SQL将匹配从第四个char开始的FOO的任何内容,然后匹配其他任何内容(包括没有任何内容)。
要查找7个字符的内容,请使用7个下划线。
如果这不是很清楚,请告诉我。
编辑:我引用了SQL Server的内容,而不是Access。换成'?‘
修改后的查询:
SELECT * FROM SomeTable WHERE [InterestingField] LIKE '???FOO*'https://stackoverflow.com/questions/33906443
复制相似问题