OLEDB 读取excel 时,碰到的select语句问题
1.OLEDB读取excel数据(前提)
2.使用select查询(为了方便查看,调整了下格式)
查询语句:sqlTest="select * from [sheet1&] where
[列1] like '%a1%' or
[列1] like '%a2%' or
[列1] like '%a3%' or
[列1] like '%a4%' or
[列1] like '%a5%' or
[列1] like '%a6%' or
...
[列1] like '%an%' ";
问题:
1.如果按这种方式写,当or条件过多时,就会引起“查询条件过于复杂”的错误,尝试了下,大概支持60多的样子(参考)
2.为了避免“查询过于复杂错误”,对查询条件进行了处理,使用了union连接多个查询字句(每个字句where条件限制在60左右),就目前程序运行来看,解决了问题. 但客观上分析,如果 or like 条件的数量增加到一定值,可能还会出现问题.(受sql语句长度限制吧,?)
3.再思考,希望能找到其他办法:将like后面的关键词存到内存表dataTable中, 如果dataTable能和Access表做 连接查询 ,那问题就能迎刃而解. 但是,dataTable怎么和数据表连接呢?好像行不通.
本次查询的筛选条件不止是like ,还包含(=,<>,in,not in ,exist,not exist等等)
期待各位老师的答案,纯技术交流,别来灌水,谢谢!