18位,每一位不同还是0~9设计这个表的人估计是C/C++弄多了,喜欢& | 逻辑运算汗。 在该字段上建索引,明显不合适,函数索引跟普通索引不是一回事(至少oracle中在t列上建的索引,用substr等函数,不会利用到这个索引)。要是查某一位,得建18个索引。 可以考虑数据库得数学运算符/及%(取mod)来取到对应位置得值来做比较或过滤(同样oracle不会利用该字段索引)。比如取低3位,12345为你的那个字段的值 SQL> select trunc(mod(12375,1000)/100)as a from dual; A ---------- 3
在该字段上建索引,明显不合适,函数索引跟普通索引不是一回事(至少oracle中在t列上建的索引,用substr等函数,不会利用到这个索引)。要是查某一位,得建18个索引。
可以考虑数据库得数学运算符/及%(取mod)来取到对应位置得值来做比较或过滤(同样oracle不会利用该字段索引)。比如取低3位,12345为你的那个字段的值
SQL> select trunc(mod(12375,1000)/100)as a from dual; A
----------
3
数字位 值 含义
1 0 主动诊断
1 PPPOE
2 其他
3 IE
4 OE
5 Outlook
6 网络掉线