首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

条件部分的执行顺序,该如何解决

2012-05-23 
条件部分的执行顺序SQL code--CREATE TABLE #T1--(--col1 int not null,--col2 int not null--)--insert i

条件部分的执行顺序

SQL code
--CREATE TABLE #T1--(--    col1 int not null,--    col2 int not null--)--insert into #t1--Select 1,2 union--Select 3,1 union--Select 0,2 union--Select 1,0--goSelect * From #T1Select * from #T1 Where (col1<>0) and (col2/col1>1.5)--1Select * from #T1 Where (col2/col1>1.5) and (col1<>0)--2Select * from #T1 Where (col2/col1>1.5)              --3


为何1、2句不报错,3却报错(3如果报错的话2应该也报错的啊) ?

[解决办法]
不是有col1<>0这个条件吗?
[解决办法]
第二句的col1<>0排除了0作为除数的可能性,所以是对的,语句三没有。其实意思是同时满足where后的条件。
[解决办法]
条件and是与的意思,就是都要为真。
第3条,当没有col1<>0这个条件,分母为0,所以错误。而第1,2条语句,则家里分母不为零的过滤条件,自然就不会出错。

热点排行