我是编写SQL查询的新手...请提示
I have a below oracle table
col1 col2 col3
test1: 001 A1 A2
test1: 002 B1 B2
test1: 003 C1 C2
test1: 004 D1 D2
test1: 005 E1 E2
我想打印col1值为> = 002且< = 004的行,如下所示
col1 col2 col3
test1: 002 B1 B2
test1: 003 C1 C2
test1: 004 D1 D2
col1是varchar2(150字节)
如何为此编写查询?
答案 0 :(得分:0)
您需要在col_1中获取字符串的正确数字,并查看它是否在2到4之间。
SELECT col1, col2, col3
FROM my_table
WHERE CAST(substr(col1,-1,1) AS INTEGER) BETWEEN 2 AND 4
答案 1 :(得分:0)
正则表达式将是您的朋友:
select t.*
from tst t
WHERE TO_NUMBER(REGEXP_SUBSTR(t.col1, '[0-9]{3}')) BETWEEN 2 and 4;
祝你好运。