索引对查询条件顺序的影响的
环境:Sql Server2000 +sp4
问题:
select datediff(day,\'\',\'\') --这句可以执行
--而下面这句不能执行(有时也可以执行)
--sub_para为varchar(8),错误信息是:从字符串转换为 datetime 时发生语法错误。
select * from T_SUB
where item_local_code=\'03004\'
and datediff(day,sub_para,getdate())=29
and (sub_del_flag1)
--而且不能执行的时候,这个语句不会返回任何记录集
select * from t_sub
where item_local_code=\'03004\'
and isDate(sub_para)=0
-------------------------------------------------------------------------
--原因,表中创建的索引影响了条件的执行顺序
--导致先执行了 datediff(day,sub_para,getdate())
--下面的测试说明了这个问题
--测试表及数据
create table tb(
item_local_code char(5),
sub_del_flag int,
sub_para varchar(10),
constraint PK_t primary key(sub_para,item_local_code)
)
insert tb select \'03004\',1,\'\'
union all select \'03005\',1,\'2003a\'
go
--查询语句
select * from (
select * from tb
where item_local_code=\'03004\'
and sub_del_flag0
and isdate(sub_para)=1
) A where datediff(day,sub_para,getdate())29
go
--删除测试
drop table tb
/*--测试结果
item_local_code sub_del_flag sub_para
--------------- ------------ ----------
03004 1
服务器: 消息 241,级别 16,状态 1,行 3
从字符串转换为 datetime 时发生语法错误。
如果按照一人一墓设计殡葬 --*/
徐州看白癜风要花多少钱武汉专治白癜风医院
头上有斑秃怎么治疗
- 上一页:索引多个数据列提高性能呢
- 下一页:索引概述
-
公职考试也看“家庭背景”,这3类人很有优势,考上机会很大!
公详的垄断压力却是是一年比一年大,每年省详、国详都是几十上百万人报上...
2023-11-29
-
九龙建业拟8.17亿港元购并能杰发展
乐居财经昨 赵微5月末20日,九龙建业(00034)公告,收购能杰工业发展有限...
2023-11-06
-
男子伪造才可倒卖物资被上海警方查处
疫情防控任时,一铁饼竟持假冒两车身份证件偷窃社会生活物资,任由疫情防...
2023-10-23
-
外地产豆奶外包装呈阳性、部分流入早餐店:镇江急寻接触者
外出生产的豆奶、午餐奶送到苏州后被查出外包装一新冠大肠杆菌呈特征性,...
2023-10-14
-
宁德时代的未来,要看康普顿蔚小理的脸色?
龙岩一时期,迎来了一个夏天。 作为一新能盛动力高压能总量消耗“大型号...
2023-10-10
-
谢霆锋现身台自曝曾与王晶关系不好,提到王菲时他一脸娇羞
5月8日,郑中基到台省为自家国际品牌做政治宣传。通宵之中走型男路线的他...
2023-10-06