SQL Select 出现查询过于复杂的问题?

来源:百度知道 编辑:UC知道 时间:2024/07/02 14:24:42
我的查询语句是这样的:
select 月份,员工编号,员工姓名,部门 from GzItem where [月份]=0 and 员工编号 = '1' or 员工编号='10' or 员工编号='11' or 员工编号='12' or 员工编号='13' or 员工编号='14' or 员工编号='15' or 员工编号='16' or 员工编号='17' or 员工编号='18' or 员工编号='19' or 员工编号='2' or 员工编号='20' or 员工编号='2000' or 员工编号='2001' or 员工编号='2002' or 员工编号='2003' or 员工编号='2004' or 员工编号='2005' or 员工编号='2006' or 员工编号='2007' or 员工编号='2008' or 员工编号='2009' or 员工编号='201' or 员工编号='2010' or 员工编号='2011' or 员工编号='2012' or 员工编号='2013' or 员工编号='2014' or 员工编号='2015' or 员工编号='2016' or 员工编号='2017' or 员工编号='2018' or 员工编号='2019' or 员工编号='202' or 员工编号='2020' or 员工编号='2021' or 员工编号='2022' or 员工编号='2023' or 员工编号='2024' or 员工编号='2025' or 员工编号='2026&

这样的话建议搂主使用存储过程
把所有的ID号用逗号隔开传给数据库中存储过程,
再在存储过程里面坐处理就可以解决你的问题了。
存储过程的任务就是把传来的ID和,混合的信息解析成ID,在一个一个查询后
将每一个结果添加到一个零时表中,最后返回这个零时表。
搞定。。。

另解:
用In子句。select 月份,员工编号,员工姓名,部门 from GzItem where
月份]=0 and 员工编号 in ('1','10','11',...)
这样应该也可以解决