我现在有这样的一个问题
我现在想取140XX 至 1739 之间的数据 我解释一下是什么意思
那个xx就是说可以有也可以没有 有的话就是从0-9 可以有一个 也可以有两个
举个例子 就是说 140是满足的 1400也是满足的 14000也是满足的条件
也就是说一直到17389 都是这样的一个条件 可以是1738,也可以是17379
但是到1739的时候只能是1739不能是17390一类的也不知道大家明不明白 我感觉我说的都不是太明白
大家看看哪不明白 在回复的时候提出来
我再给大家做解释
我现在想取140XX 至 1739 之间的数据 我解释一下是什么意思
那个xx就是说可以有也可以没有 有的话就是从0-9 可以有一个 也可以有两个
举个例子 就是说 140是满足的 1400也是满足的 14000也是满足的条件
也就是说一直到17389 都是这样的一个条件 可以是1738,也可以是17379
但是到1739的时候只能是1739不能是17390一类的也不知道大家明不明白 我感觉我说的都不是太明白
大家看看哪不明白 在回复的时候提出来
我再给大家做解释
这是我写的一部分 也不知道对不对
regexp_like(dx1,'^1[4-6][0-9]{1,3}') or regexp_like(dx1,'^17[0-2][0-9]{0,2}')
但是现在的这个正则里面没有包括 173[0-8][0-9]的内容 这段我不知道怎么写来着 因为[0-8][0-9]都是可有可无的啊 如果要是 173[0-8][0-9]{0,1} 那就是说[0-9]有0到1次 因为173也是满足条件的 1738也是满足条件的 还有就是17389也是满足条件的
这样该怎么写这个正则啊
from table_name
where substr(col_xx, 0, 3) >= 140
and substr(col_xx, 0, 4) <=1739
and substr(col_xx, 0, 5) <17390是这个意思吗?不知道你的数值长度也没有限制?
dx1 between '140' and '1739'
不是这么简单的 还有17389也是符合条件的呢
不是between and 那么简单的
regexp_like(dx1,'^1[4-6][0-9]{1,3}') or regexp_like(dx1,'^17[0-2][0-9]{0,2}')
但是现在的这个正则里面没有包括 173[0-8][0-9]的内容 这段我不知道怎么写来着 因为[0-8][0-9]都
是可有可无的啊 如果要是 173[0-8][0-9]{0,1} 那就是说[0-9]有0到1次 因为173也是满足条件的
1738也是满足条件的 还有就是17389也是满足条件的
这样该怎么写这个正则啊
select * from tablename where regexp_like(column,'^1[4-6][0-9]{1,3}|17[0-3][0-8]{0,1}[0-9]{0,1}|1739$');
这样呢?
这个差不多吧
不过楼主直接用<和>比较字符串不是更好
dx1 between '17400' and '17499' or dx1 = '2330' or dx2 between '17400' and '17499'
or dx2 = '2330'or dx3 between '17400' and '17499' or dx3 = '2330'
or dx4 between '17400' and '17499' or dx4 = '2330'or dx5 between '17400'
and '17499' or dx5 = '2330'or dx6 between '17400' and '17499' or dx6 = '2330'
or dx7 between '17400' and '17499' or dx7 = '2330'or dx8 between '17400' and '17499' or dx8 = '2330'or dx9 between '17400' and '17499' or dx9 = '2330'这个是以前的sql语句 这个就是执行位图索引的 select mbrid from fi04 where
regexp_like(dx1,'^174[0-9]{0,2}$') or dx1 = '2330' or regexp_like(dx2,'^174[0-9]{0,2}$') or dx2 = '2330'or regexp_like(dx3,'^174[0-9]{0,2}$') or dx3 = '2330'
or regexp_like(dx4,'^174[0-9]{0,2}$') or dx4 = '2330'or regexp_like(dx5,'^174[0-9]{0,2}$') or dx5 = '2330'or regexp_like(dx6,'^174[0-9]{0,2}$') or dx6 = '2330'
or regexp_like(dx7,'^174[0-9]{0,2}$') or dx7 = '2330'or regexp_like(dx7,'^174[0-9]{0,2}$') or dx8 = '2330'or regexp_like(dx9,'^174[0-9]{0,2}$') or dx9 = '2330'这个就是用正则改过之后的查询 这个就不执行位图索引
为什么啊??
怎么才能让他使用为图索引啊