我正在尝试检索所有的条目,这些条目的部件号是一个后跟3到10之间的数字的单词。
like 'STAIR[3-10]'在前面和后面都没有任何字符。但是,这不会返回任何内容。这是我第一次使用SQL,所以请原谅我的无知。
发布于 2018-09-20 04:59:52
如果确定只有数字可以跟在前缀后面,则如下所示
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()替换它。
如果可以跟数字以外的其他字符,则至少
x LIKE 'STAIR%'
AND right(length(x) - 5) IN ('3', ..., '10')也许行得通。
或者是显而易见的
x IN ('STAIR3', ..., 'STAIR10')发布于 2018-09-20 07:02:21
WHERE REGEXP_LIKE(COLUMN_NAME,'STAIR[3-9]|STAIR[1]{1}[0]{1}');https://stackoverflow.com/questions/52413936
复制相似问题