首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配字符串后跟某个范围内的数字的SQL

匹配字符串后跟某个范围内的数字的SQL
EN

Stack Overflow用户
提问于 2018-09-20 04:43:15
回答 2查看 78关注 0票数 0

我正在尝试检索所有的条目,这些条目的部件号是一个后跟3到10之间的数字的单词。

代码语言:javascript
复制
like 'STAIR[3-10]'

在前面和后面都没有任何字符。但是,这不会返回任何内容。这是我第一次使用SQL,所以请原谅我的无知。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-20 04:59:52

如果确定只有数字可以跟在前缀后面,则如下所示

代码语言:javascript
复制
 x LIKE 'STAIR%'
 AND cast(right(x, length(x) - 5) AS integer) BETWEEN 3 AND 10

可能适用于许多DBMS。right(x, n)从字符串x的右侧获取n字符。length(x)返回字符串x的长度。因此,如果减去'STAIR'的长度,就会得到x'STAIR'之后的字符串。cast()将表达式的类型强制转换为整数。如果length()对于您的数据库管理系统来说是一个未知的函数,请尝试用len()替换它。

如果可以跟数字以外的其他字符,则至少

代码语言:javascript
复制
x LIKE 'STAIR%'
AND right(length(x) - 5) IN ('3', ..., '10')

也许行得通。

或者是显而易见的

代码语言:javascript
复制
x IN ('STAIR3', ..., 'STAIR10')
票数 0
EN

Stack Overflow用户

发布于 2018-09-20 07:02:21

代码语言:javascript
复制
WHERE REGEXP_LIKE(COLUMN_NAME,'STAIR[3-9]|STAIR[1]{1}[0]{1}');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52413936

复制
相关文章

相似问题

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