对,in 里面的条件来自于那个只有身份证号的datagridview数据库中没有身份证号的索引,而且无法添加索引 用CTE吧,外查询没有索引的话,用IN肯定慢了 你把datagridview中的身份证号拼接字符串时,可以拼接为CTE的模式 最后效果可以这样: with RoleNumT as ( select '12321312' as rolenum union all select '12324134' union all select '12324123' ... ) select * from tb t where exists(select 1 from RoleNumT ct where t.rolenum=ct.rolenum);
你数据库中的明细表的身份证号字段是否有索引呢?
对,in 里面的条件来自于那个只有身份证号的datagridview数据库中没有身份证号的索引,而且无法添加索引
这样速度会快些。
对,in 里面的条件来自于那个只有身份证号的datagridview数据库中没有身份证号的索引,而且无法添加索引
用CTE吧,外查询没有索引的话,用IN肯定慢了
你把datagridview中的身份证号拼接字符串时,可以拼接为CTE的模式
最后效果可以这样:
with RoleNumT as
(
select '12321312' as rolenum
union all
select '12324134'
union all
select '12324123' ...
)
select * from tb t where exists(select 1 from RoleNumT ct where t.rolenum=ct.rolenum);
for....
datagridview.Rows.Add(...)